2016-12-07 131 views
6

我聽說亞馬遜使用HTTP來實現基於微服務的體系結構。另一種方法是使用像RabbitMQ或Solace系統的消息系統。我個人有基於Solace的微服務體系結構的經驗,但從來沒有使用過REST。
任何想法像亞馬遜,Netflix,英國政府等各種大聯盟實施使用?
其他方面是,在微服務,事情需要(除了其他)以下:
*模式匹配
*異步消息..接收系統可以是向下
*發佈訂閱
*緩存加載事件..即上啓動時,服務可能需要加載來自其他一些服務的所有數據,並且在數據完全加載時應該被通知,以便它可以'知道'它現在已經準備好服務請求了。
這些方面是自然的使用消息而不是REST完成。爲什麼任何人都應該使用REST(公共API除外)。謝謝。微服務:REST與消息傳遞

+0

HTTP,REST是規範。 RabbitMQ/Solace是郵件經紀人。您的問題是「基於HTTP/REST的服務的應用程序是什麼」? – k1133

+0

hmm可能使用REST應該使用的地方,應該使用消息傳遞的地方,或者組合..爲什麼這個而不是那種 –

回答

9

過去我遵循的一個標準是當關鍵要求是速度(並且數據丟失不重要)和關鍵要求是可靠性時發送消息時使用Web服務。就像你所說的那樣,如果接收系統關閉了,一條消息將會放在隊列中,直到系統恢復正常處理它爲止。如果它是一個REST端點並且它已關閉,則請求將會失敗。

+4

+1,你可能想要考慮同步通信(REST)的耦合影響,如果一個失敗的所有家屬將失敗,因此除了丟失數據之外,它還可能導致連鎖反應,從而導致整個系統失效。 –

+0

@SeanFarmar這就是我所說的多米諾骨牌效應。一個相關的問題是漣漪效應,其中一項服務的變化可能需要改變下游服務。 – MattDavey

-2

REST API假設僅使用HTTP。這是相當石器時代的技術,不接受異步。消息。爲了在那裏插入消息,我會考慮WebSockets網關 -最終虛擬語句的發展