我聽說亞馬遜使用HTTP來實現基於微服務的體系結構。另一種方法是使用像RabbitMQ或Solace系統的消息系統。我個人有基於Solace的微服務體系結構的經驗,但從來沒有使用過REST。
任何想法像亞馬遜,Netflix,英國政府等各種大聯盟實施使用?
其他方面是,在微服務,事情需要(除了其他)以下:
*模式匹配
*異步消息..接收系統可以是向下
*發佈訂閱
*緩存加載事件..即上啓動時,服務可能需要加載來自其他一些服務的所有數據,並且在數據完全加載時應該被通知,以便它可以'知道'它現在已經準備好服務請求了。
這些方面是自然的使用消息而不是REST完成。爲什麼任何人都應該使用REST(公共API除外)。謝謝。微服務:REST與消息傳遞
6
A
回答
9
過去我遵循的一個標準是當關鍵要求是速度(並且數據丟失不重要)和關鍵要求是可靠性時發送消息時使用Web服務。就像你所說的那樣,如果接收系統關閉了,一條消息將會放在隊列中,直到系統恢復正常處理它爲止。如果它是一個REST端點並且它已關閉,則請求將會失敗。
+4
+1,你可能想要考慮同步通信(REST)的耦合影響,如果一個失敗的所有家屬將失敗,因此除了丟失數據之外,它還可能導致連鎖反應,從而導致整個系統失效。 –
+0
@SeanFarmar這就是我所說的多米諾骨牌效應。一個相關的問題是漣漪效應,其中一項服務的變化可能需要改變下游服務。 – MattDavey
-2
REST API假設僅使用HTTP。這是相當石器時代的技術,不接受異步。消息。爲了在那裏插入消息,我會考慮WebSockets網關 -最終虛擬語句的發展
相關問題
- 1. 使用REST API和消息傳遞的微服務
- 2. Web服務與消息傳遞
- 3. 簡單協議(如twisted.pb)與消息傳遞(AMQP/JMS)與Web服務(REST/SOAP)
- 4. 微服務消息選擇
- 5. 如何創建消息傳遞服務?
- 6. 針對微服務的基於REST的消息隊列
- 7. 雲消息傳遞或REST API?
- 8. Web服務與消息傳遞以檢索視圖數據
- 9. 消息傳遞與鎖定
- 10. 服務器到服務器API消息傳遞
- 11. 春微服務:響應與信息來自其他微服務
- 12. 在調用REST服務期間傳遞錯誤消息的正確方法?
- 13. wcf rest服務消息日誌記錄
- 14. 使用REST服務傳遞JSON C#
- 15. Rest - Jersey.Client將@SecurityContext傳遞給服務器
- 16. 在Rest Wcf服務中傳遞參數
- 17. 微服務到微服務調用,來自隊列消息的授權
- 18. 當屏幕關閉時,Firebase消息傳遞服務沒有收到消息
- 19. Android消息傳遞
- 20. Google雲消息傳遞業務設置
- 21. 消息傳遞與observable不起作用
- 22. MVVM消息傳遞與RaisePropertyChanged <T>
- 23. 與傳遞消息通過MVVM光
- 24. C++ GetAsyncKeyState和GetCursorPos與Windows消息傳遞
- 25. Firebase消息傳遞錯誤:消息傳遞/權限被阻止
- 26. Android服務器註冊時的Google Cloud消息傳遞問題?
- 27. Chrome上的Firebase消息傳遞服務工作者
- 28. 在Firebase雲消息傳遞中管理服務器密鑰
- 29. 通過Web服務(如SOAP)選擇消息傳遞系統
- 30. Firebase消息傳遞服務(用於通知)是否粘滯?
HTTP,REST是規範。 RabbitMQ/Solace是郵件經紀人。您的問題是「基於HTTP/REST的服務的應用程序是什麼」? – k1133
hmm可能使用REST應該使用的地方,應該使用消息傳遞的地方,或者組合..爲什麼這個而不是那種 –