現如今微服務很流行,而微服務很有可能是使用不同語言進行構建的。而微服務之間通常需要相互通信,所以微服務之間必須在以下幾個方面達成共識: 需要使用某種API 數據格式 錯誤的模式 負載均衡 。。。 現在最流行的一種API風格可能是REST,它主要是通過HTTP協議來傳輸JSON數據。 但是現在我們可以 ...
現如今微服務很流行,而微服務很有可能是使用不同語言進行構建的。而微服務之間通常需要相互通信,所以微服務之間必須在以下幾個方面達成共識:
- 需要使用某種API
- 數據格式
- 錯誤的模式
- 負載均衡
- 。。。
現在最流行的一種API風格可能是REST,它主要是通過HTTP協議來傳輸JSON數據。
但是現在我們可以看看gRPC(https://grpc.io/),它來自Google,並且支持眾多主流的語言包括Go,Dart,C#,C/C++,Nodejs,Python等等。
下麵就學習一下gRPC。
gRPC能解決哪些問題?
構建(Web)API是挺麻煩的,因為構建API時我們得考慮:
- 數據的格式是JSON、XML還是二進位的;
- 端點地址以及GET還是POST等;
- 如何調用API以及對異常的處理規則;
- API的效率:一次調用讀取多少數據?是否太多了或太少了?太少的話可能會導致多次API的調用;
- 延遲;
- 擴展性,是否能支持成上千個客戶端
- 負載均衡
- 與其他語言的互操作性
- 如何處理身份認證、監控、日誌等等
以上這些問題據說gRPC都能解決。。