日韩性视频-久久久蜜桃-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...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美伦理片网站 | 成年人在线视频 | 91婷婷在线| 亚洲成a人片777777久久 | 国产高潮呻吟久久 | 97久久国产精品 | 精品久久久国产 | 日本一级一片免费视频 | 99综合色| 久久噜| 亚洲小视频网站 | 国产网址在线观看 | 秋霞国产精品 | 亚洲国产精品久久久久 | 少妇丰满尤物大尺度写真 | 国产一区二区三区小说 | 嘿咻视频在线观看 | 狠狠干五月天 | 人av在线 | 久久久老司机 | 夜夜嗨av一区二区 | 成人欧美一区二区三区小说 | 极品一区 | 午夜羞羞影院 | 国产免费激情视频 | 91高清视频免费观看 | 亚洲青草视频 | 日本aaaa| 一区二区三区韩国 | 91欧美日韩| 免费毛片av | 亚洲乱妇 | 天天摸天天操天天干 | 日韩三级在线观看 | 亚洲精品久久久久久久久久吃药 | 久久y| 人妻av一区二区三区 | 免费观看一级黄色片 | 亚洲久久成人 | 尹人香蕉 | 欧美激情国产日韩精品一区18 | 免费看60分钟黄视频 | 免费色av | 波多野结衣av电影 | av播放网站| 999xxxx| 不卡av影院| 成人中文视频 | 天堂综合网 | 国产成人精品在线 | 久久伊人av | 亚洲福利在线播放 | 日批视频 | 欧美另类自拍 | 中文字幕一区二区在线观看 | 日本免费在线播放 | 精品无码久久久久久久久果冻 | 久久一二区 | 亚洲激情国产 | 天天综合天天添夜夜添狠狠添 | 麻豆视频免费看 | 欧美日韩久久 | 精品三区| 国产乱强伦一区二区三区 | 特级毛片爽www免费版 | 亚洲图片综合网 | 香蕉国产999 | 黄网站在线观看 | 99小视频 | 日韩欧美中文在线 | 日韩精品久久久 | 中文字幕第4页 | 色www亚洲国产阿娇yao | 337p日本欧洲亚洲鲁鲁 | 日韩av电影手机在线观看 | 日韩伦理一区 | 香蕉视频性 | 一区二区欧美日韩 | 欧美影视一区二区 | 精品国产96亚洲一区二区三区 | 日本大尺度吃奶做爰视频 | 日本一区高清 | 亚洲AV无码成人精品区东京热 | 国产麻豆午夜三级精品 | 国产浮力影院 | 91精品久久久久久久久 | 狠狠插狠狠干 | 黄色a级在线观看 | 青青操视频在线观看 | 免费看爱爱视频 | 美国成人av| 欧美劲爆第一页 | www.sesehu| 91久久精品国产91久久性色tv | 日韩片在线观看 | 人妻体内射精一区二区三区 | 国产喷水在线 | 久久不射电影网 | 又大又硬又爽免费视频 |