基于事件驱动架构构建微服务第15部分:SPA前端

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于事件驱动架构构建微服务第15部分:SPA前端相关的知识,希望对你有一定的参考价值。

原文链接 https://logcorner.com/building-micro-services-through-event-driven-architecture-part15-spa-front-end/

在本教程中,我将展示如何使用angular构建SPA前端来发送命令和请求查询。

SPA前端使用commandAPI发送命令(创建、更新或删除语音),然后该命令将传输到Kafka服务总线,然后才可用于no-sql数据库 elasticsearch。

Query API将使用no-sql数据库elasticsearch来显示新创建的数据(在即将发布的教程中,我将使用Signalr Notification通知SPA前端更新屏幕)

要学习本教程,您应该熟悉angular。

环境变量

angular项目包含一个名为environments的文件夹。在这个文件夹中,我可以定义环境变量,例如:environment.test.ts来定义测试环境设置。

以下命令将使用测试环境运行构建

ng run build –configuration=test

在我的演示中,我将进入默认环境,即 dev (environment.ts)

npm run build 会默认使用这个环境。

这里我定义了命令Api端点和查询Api端点

语音服务

SpeechService使用来自@angular/common/http的HttpClient服务来发送POST、GET、PUT或DELETE请求

SpeechListComponent

SpeechListComponent调用SpeechService从查询Api中检索数据

SpeechCreateComponent

SpeechCreateComponent调用SpeechService向命令Api发送(POST)数据

测试

使用本地环境进行测试

搭建测试环境需要安装kafka,elastic search https://logcorner.com/building-microservices-through-event-driven-architecture-part12-produce-events-to-apache-kafka/

启动zookeeper

zookeeper-server-start.bat config\\zookeeper.properties

启动kafka

kafka-server-start.bat config\\server.properties

kafka-topics –zookeeper 127.0.0.1:2181 –topic Speech –create –partitions 3 –replication-factor 1

启动ElasticSearch 和 Kibana

bin/kibana

http://localhost:5601

启动服务总线

从此repo克隆代码:https://github.com/logcorner/LogCorner.EduSync.Speech.ServiceBus/tree/develop

启动命令API

从此repo克隆代码:https://github.com/logcorner/LogCorner.EduSync.Speech.Command/tree/develop

启动查询API

从此repo克隆代码:https://github.com/logcorner/LogCorner.EduSync.Speech.Query/tree/develop

启动前端

从此repo克隆代码:https://github.com/logcorner/LogCorner.EduSync.Speech.Front/tree/develop

使用docker测试

创建一个docker网络

docker network create speech_network

为基础设施(kafka、elasticsearch、生产者和消费者)构建和运行多容器docker应用程序 ……\\LogCorner.EduSync.Speech.ServiceBus\\src

docker-compose build
docker-compose up

为命令Api(sql server linux 和命令 Api)构建和运行多容器docker应用程序 …\\LogCorner.EduSync.Speech.Command\\src

docker-compose build
docker-compose up

为查询Api构建和运行多容器docker应用程序 ….\\LogCorner.EduSync.Speech.Query\\src

docker-compose build
docker-compose up

为前端SPA(nginx 和 angular 前端)构建并运行容器docker应用程序 …….\\LogCorner.EduSync.Speech.Front\\logcorner-edusync-speech

docker-compose build
docker-compose up
docker ps –all –format “table .ID\\t.Image\\t.Names\\t.Ports”

http://localhost:4200/speech

代码源可在此处获得:

  • https://github.com/logcorner/LogCorner.EduSync.Speech.Front/tree/develop

  • https://github.com/logcorner/LogCorner.EduSync.Speech.Query/tree/develop

  • https://github.com/logcorner/LogCorner.EduSync.Speech.Command/tree/develop

  • https://github.com/logcorner/LogCorner.EduSync.Speech.ServiceBus/tree/develop

以上是关于基于事件驱动架构构建微服务第15部分:SPA前端的主要内容,如果未能解决你的问题,请参考以下文章

基于事件驱动架构构建微服务第14部分:查询API

基于事件驱动架构构建微服务第7部分:在仓储上实现事件溯源

基于事件驱动架构构建微服务第4部分:repositories

基于事件驱动架构构建微服务第9部分:处理更新

基于事件驱动架构构建微服务第12部分:向Apache KAFKA生成事件

基于事件驱动架构构建微服务第8部分:在应用程序上实现事件溯源