日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于事件驱动架构构建微服务第13部分:使用来自Apache KAFKA的事件并将投影流传输到ElasticSearch...

發布時間:2023/12/4 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于事件驱动架构构建微服务第13部分:使用来自Apache KAFKA的事件并将投影流传输到ElasticSearch... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:https://logcorner.com/building-microservices-through-event-driven-architecture-part13-read-model-projection-project-streams-into-elasticsearch/

在本教程中,我將展示如何從KAFKA讀取流并將流投影到ElasticSearch中。

我必須使用來自KAFKA的消息,我從KAFKA讀取的消息是事件流。所以我必須將這些流投影到結構化表示中。然后我會將投影索引到ElasticSearch中。

所以我會建立一個訂閱KAFKA并監聽事件的消費者。如果它接收到一個event,它將使用投影來創建該事件的結構演示。最后將其存儲到一個nosql數據庫ElasticSearch。

投影事件

實際上,讀取數千個事件會花費太長時間,相反我們可以預先計算當前狀態并將其存儲到nosql數據庫中。投影可以定義為從一系列事件中導出的當前狀態

我定義了一個基本的泛型類Entity,因此每個投影都將從它派生。

我定義了一個抽象的泛型類Projection,它接受一個事件列表并將它們應用于具體類(在我們的例子中是 SpeechProjection)。

SpeechProjection是一個表示我想從事件(SpeechCreatedEvent、SpeechTitleChangedEvent、SpeechDescriptionChangedEvent、SpeechUrlChangedEvent和SpeechTypeChangedEvent)重建其狀態的實體的類。

因此,對于與給定實體(語音)相關的每個事件,我必須將事件應用于實體。

ElasticSearch介紹

Elasticsearch是一種分布式RESTful搜索和分析引擎,能夠處理越來越多的用例。作為Elastic Stack的核心,它集中存儲你的數據,以實現閃電般的快速搜索、微調相關性和可輕松擴展的強大分析。https://www.elastic.co/elasticsearch/

轉到以下鏈接安裝elasticsearch:https://www.elastic.co/downloads/elasticsearch

你可以通過使用PowerShell運行以下命令 curl http://localhost:9200/ 或 Invoke-RestMethod http://localhost:9200 來驗證安裝是否正常

以下代碼創建一個通用存儲庫以連接到彈性搜索,并執行CRUD操作。

創建工作服務

ASP.NET Core Worker Service模板為編寫長時間運行的服務應用程序提供了一個起點。

我們可以使用工作服務來構建不需要用戶交互或執行定期和長時間運行的工作負載的應用程序。

https://docs.microsoft.com/fr-fr/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-5.0&tabs=visual-studio

我將使用Worker Service構建一個消費服務,該服務消費來自APACHE KAFKA的事件并將它們索引到ElasticSearch

ConsumerHostedService

ConsumerHostedService是承載ConsumerService的后臺服務

ConsumerService

ConsumerService調用服務總線,該總線在產生新事件時從Kafka接收通知。

服務總線

KafkaClient

KafkaClient實現了IServiceBusProvider的ReceiveAsync。它訂閱了一個Kafka主題,因此當一個事件發布到該主題時,它會通知一個中介服務。

ElasticSearchNotifier實現了INotificationHandler。這個類的職責是反序列化輸入事件并將其索引到elasticsearch。

測試

啟動zookeeper

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

啟動Kafka

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

啟動ElasticSearch

啟動下列工程:

  • LogCorner.EduSync.SignalR.Server

  • LogCorner.EduSync.Speech.Producer

  • LogCorner.EduSync.Speech.Consumer 啟動下列工程:

  • LogCorner.EduSync.Speech.Presentation

啟動Postman并且post一個新command?

你應該在消費者控制臺上看到以下輸出,使用postman上發布的命令

代碼源可在此處獲得:

https://github.com/logcorner/LogCorner.EduSync.Speech.Command https://github.com/logcorner/LogCorner.EduSync.Speech.ServiceBus/tree/Feature/Task/IndexMessagesToElasticSearch

總結

以上是生活随笔為你收集整理的基于事件驱动架构构建微服务第13部分:使用来自Apache KAFKA的事件并将投影流传输到ElasticSearch...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天摸天天摸 | 欧美人妻一区二区三区 | 男人天堂网在线 | 午夜少妇av| 蜜桃av免费看 | 日韩欧美偷拍 | 91久久人澡人人添人人爽欧美 | 中国少妇高潮 | 亚洲一区二区三区观看 | 免费性片 | 欧美粗又大 | 在线视频免费播放 | 无码国产精品96久久久久 | 日日夜夜网 | h片在线免费 | 51精产品一区一区三区 | 精品国产伦一区 | 天天综合干 | 青草视频免费看 | 91日韩欧美 | 国产亚洲精品成人 | 天堂视频免费 | 欧美日韩经典 | 在线免费观看国产精品 | 亚洲第一色区 | 91精品国产综合久久国产大片 | 国产成人黄色片 | 伊人免费在线观看高清版 | 精品香蕉一区二区三区 | aa亚洲 | 99热网| 国产chinese男男网站大全 | 亚洲高清免费 | 亚洲作爱 | 黄色污在线观看 | 亚洲天堂久久久 | 一区二区伦理片 | 国产精品久久国产精品 | 国内成人综合 | 美女搡bbb又爽又猛又黄www | 国产成人一区二区三区 | 中文字幕成人 | 午夜影音| 在线观看aaa| 日韩中文字幕一区二区三区四区 | 91蜜桃视频在线观看 | 九九热视频在线观看 | 国产不卡在线观看视频 | va毛片| 免费看国产黄色片 | 欧美www| 色屁屁www| jizz性欧美15 | 日韩成人午夜影院 | 免费成人深夜夜视频 | 毛片网站在线观看 | jizz高潮 | 97人人干 | 国产3级在线 | 看片久久 | 亚洲欧美日本一区二区三区 | 九九自拍视频 | 污污视频网站在线免费观看 | 风韵少妇性饥渴推油按摩视频 | 欧美男人天堂网 | 亚洲激情成人 | 国产精品30p | 国产黄色网 | 自拍视频一区二区 | 色噜噜狠狠一区二区三区牛牛影视 | 久久久久久久综合 | 农民人伦一区二区三区 | 精品久久久无码中文字幕 | 日本aa在线观看 | 国产乱xxⅹxx国语对白 | 欧美男人又粗又长又大 | 日本精品久久久久久久 | 伊人色婷婷 | 99热在线播放| 香蕉久久精品日日躁夜夜躁 | 久草久草久草 | 欧美在线视频一区二区三区 | 蜜桃视频在线观看一区二区 | 日韩精品乱码久久久久久 | 麻豆剧场 | 久久最新网址 | 制服一区 | 国产黄色片免费观看 | 国产在线播放一区二区三区 | 在线免费视频你懂的 | 91天堂在线视频 | 欧美午夜性春猛交 | 操碰av| 色多多视频网站 | www日韩| 一区二三区 | 精品国自产拍在线观看 | 精品成人中文无码专区 | bangbros性欧美18|