亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們可以使用 Web-Sockets 在微服務之間進行通信嗎?

我們可以使用 Web-Sockets 在微服務之間進行通信嗎?

慕虎7371278 2022-06-04 17:39:44
我們有一個用例,我們有兩個微服務,Microservice A將一個長時間運行的任務推送到Microservice B.Microservice B開始處理任務并不斷更新任務的狀態?,F在Microservice A必須不斷輪詢Microservice B任務狀態的更新。我們當前的設置中沒有隊列。因此,我們想到了創建一個web socketbetween Microservice A,Microservice B以便微服務 B 可以將狀態更新推送到Microservice A. 這種設計是否會違反任何原則,Web sockets并且與持續輪詢相比,它是否會是一種更好的方法?
查看完整描述

3 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

最推薦的選項是添加一個隊列:

  • 這將減少微服務 A 和微服務 B 之間的耦合

  • 這將允許同樣對任務狀態/結果感興趣的微服務 C 了解它,而無需對微服務 B 進行任何更改

如果你仍然選擇 websocket,你將不得不考慮可擴展性的情況(如果你有兩個 MicroserviceB 實例,調用哪個實例),失敗(如果一個服務失敗,誰重新運行套接字......),和其他一些人。這就是為什么它不是在微服務環境中進行異步調用的最佳選擇。


查看完整回答
反對 回復 2022-06-04
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

如果你想走這條路——我建議更好的方法是轉移焦點,這樣你就有一個中央 websockets“服務器”,你的微服務直接相互連接。然后,您實際上是在復制所有其他架構如何做到這一點,無論是 RabbitMQ 還是 Kafka 等



查看完整回答
反對 回復 2022-06-04
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

Apache Pulsar 能夠作為消息代理工作,并具有用于向主題發送消息和偵聽主題的 WS 接口。我自己還沒有嘗試過……但我會測試使用它來發送和監聽不同類型的微服務中的事件。Pulsar 本身是可擴展的,允許持久消息傳遞,例如可以在 Kubernetes 上安裝和執行。但我只讀過它......現在我必須自己嘗試一下:)。



查看完整回答
反對 回復 2022-06-04
  • 3 回答
  • 0 關注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號