gRPC多專案的proto管理問題

kevin發表於2017-09-18

gRPC 在我們的專案中有大量的應用,隨之而來的就有一個問題關於 gRPC 的 proto 和 client 程式碼管理問題。由於提供 gRPC 服務的通常都是各個系統,目前專案都是使用自己的 vendor 進行依賴管理。同時,為了方便其他專案的呼叫,該服務的 client 端程式碼也通常是和專案一起進行開發的,提供給第三方呼叫。

這樣就出現了當使用相同庫時,外部 vendor 會與呼叫 client 的專案 vendor 目錄衝突,針對相同第三方包引用時,會出現因為路徑不同,導致識別非相同定義的問題。

我目前想到的方法有兩種:

  • 將 proto/server/client 部分程式碼拆分出來,單獨做倉庫。這樣會有很多倉庫出現。
  • 專案倉庫中不在內建 vendor,但是這樣對 CI 系統並不友好,尤其是使用了/x/net 等之類的包。

請教一下各位在實踐時都是如何操作的呢?各有什麼利弊?

更多原創文章乾貨分享,請關注公眾號
  • gRPC多專案的proto管理問題
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章