我聽說亞馬遜使用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. 查詢Jersey REST服務時的消息傳遞異常(com.sun.jersey.api.MessageException)
- 6. 如何創建消息傳遞服務?
- 7. WCF服務間消息傳遞
- 8. Restful服務和消息傳遞
- 9. 消息傳遞服務:redis還是mongodb?
- 10. 針對微服務的基於REST的消息隊列
- 11. 消息隊列與消息傳遞
- 12. Java消息傳遞服務 - 未收到消息
- 13. 無法從服務器發佈消息:Google雲消息傳遞
- 14. 雲消息傳遞或REST API?
- 15. 與Guava的EventBus一樣工作的消息傳遞服務
- 16. Web服務與消息傳遞以檢索視圖數據
- 17. 消息傳遞與boost :: threads?
- 18. 消息傳遞與鎖定
- 19. 服務器到服務器API消息傳遞
- 20. 春微服務:響應與信息來自其他微服務
- 21. 在調用REST服務期間傳遞錯誤消息的正確方法?
- 22. wcf rest服務消息日誌記錄
- 23. c#WCF客戶端服務器消息傳遞/事務優化
- 24. WCF4 REST APIkey問題 - 將信息從ServiceAuthorizationManager傳遞到服務
- 25. 使用REST服務傳遞JSON C#
- 26. Rest - Jersey.Client將@SecurityContext傳遞給服務器
- 27. 在Rest Wcf服務中傳遞參數
- 28. 微服務到微服務調用,來自隊列消息的授權
- 29. 當屏幕關閉時,Firebase消息傳遞服務沒有收到消息
- 30. Google雲消息傳遞服務允許您向iPhone發送消息嗎?
HTTP,REST是規範。 RabbitMQ/Solace是郵件經紀人。您的問題是「基於HTTP/REST的服務的應用程序是什麼」? – k1133
hmm可能使用REST應該使用的地方,應該使用消息傳遞的地方,或者組合..爲什麼這個而不是那種 –