2016-02-27 128 views
3

假設您有微服務A,B和C,它們當前都通過HTTP進行通信。說服務A向服務B發送一個請求,這個請求會導致響應。然後,該響應中返回的數據必須發送到服務C進行一些處理,然後才能返回到服務A.服務A現在可以在網頁上顯示結果。微服務之間的通信

我知道延遲是實現微服務架構的固有問題,我想知道什麼是減少這種延遲的常見方法?

此外,我一直在閱讀Apache Thrift和RPC如何幫助解決這個問題。任何人都可以詳細說明嗎?

+1

這篇關於Thrift Microservices的文章我最近放在一起可能有幫助(比較SOAP/REST/THRIFT等):https://dzone.com/articles/polyglot-microservices-and-apache-thrift – codeSF

+0

看看[MQTT](http://mqtt.org) – Trung

+0

RPC(say:thrift),你的想法中的http有字符請求 - 響應A-> B-> A等基於隊列(MQTT等)可以理解爲像消息流圖A-> B-> C-> A。 –

回答

3

另外,我一直在閱讀Apache Thrift和RPC如何幫助解決這個問題。任何人都可以詳細說明嗎?

如Apache節儉的RPC框架的目標是

  • 以顯著減少手工編程開銷
  • 提供高效的序列化和傳輸機制
  • 跨越各種編程語言和平臺

換句話說,這可以讓你發送你的數據作爲一個非常compac通過網絡編寫和壓縮數據包,而實現這一目標所需的大部分工作都由框架提供。

阿帕奇節儉提供了能夠快速在不同

  • 傳輸(插座,HTTP,管道,流,...)
  • 協議堵塞適於一個可插入的傳輸/協議棧(二進制,結構緊湊,JSON,...)
  • 層(陷害,多重,gzip的,...)

另外,根據目標語言,你的服務器端的一些基礎設施,S如TNonBlocking或ThreadPool服務器等。

因此,回到最初的問題,這樣的框架可以幫助使通信更容易,更高效。但它不能從OSI堆棧的其他部分中奇蹟般地移除延遲。