學習筆記:帶你十天輕鬆搞定 Go 微服務系列(二)

zhaocrazy發表於2022-02-16

部落格:帶你十天輕鬆搞定 Go 微服務系列(二) 學習筆記

商城系統

按業務服務拆分
  • 使用者服務(user)
  • 訂單服務(order)
  • 產品服務(product)
  • 支付服務(pay)
  • 售後服務(afterSale)
  • …….
按呼叫方式拆分
區別 API服務 RPC服務
傳輸協議 基於HTTP協議 可以基於HTTP協議,也可以基於TCP協議
傳輸效率 如果是基於http1.1的協議,請求中會包含很多無用的內容,如果是基於HTTP2.0,那麼簡單的封裝下可以作為一個RPC來使用,這時標準的RPC框架更多的是服務治理。 使用自定義的TCP協議,可以讓請求報文體積更小,或者使用HTTP2協議,也可以很好的減小報文體積,提高傳輸效率
效能消耗 大部分是基於json實現的,位元組大小和序列化耗時都比thrift要更消耗效能 可以基於thrift實現高效的二進位制傳輸
負載均衡 需要配置Nginx、HAProxy配置 基本自帶了負載均衡策略
服務治理:(下游服務新增,重啟,下線時如何不影響上游呼叫者) 需要事先通知,如修改NGINX配置。 能做到自動通知,不影響上游

總結:RPC 是一個更高效的呼叫方式 可以像呼叫本地函式一樣呼叫介面
主要用於公司內部服務呼叫,傳輸效率高(TCP,報文小),
效能消耗低(高效的二進位制傳輸、位元組小、序列化耗時少),服務治理方便。參考

建立專案目錄

cd xxx/gonivinck/code/ 在code 中新建專案

學習筆記:帶你十天輕鬆搞定 Go 微服務系列(二)

本作品採用《CC 協議》,轉載必須註明作者和本文連結
滴水穿石,石破天驚----馬乂

相關文章