在微服務體系結構中,建議集中收集proto文件並將它們作爲客戶機和服務器的依賴項?或者每個客戶端和服務器只有1個原始文件?Grpc微服務體系結構實現
1
A
回答
0
如果您的組織使用單片代碼庫(即,所有代碼都存儲在一個存儲庫中),我強烈建議使用相同的文件。另一種方法是隻複製文件,但必須保持所有版本的同步。
如果您在發送方和接收方之間共享協議緩衝區文件,則可以靜態檢查發送方和接收方是否使用相同的模式,特別是如果某些新的微服務將以靜態類型語言編寫(例如Java )。另一方面,如果您沒有單片代碼庫,而是有多個存儲庫(例如,每個微服務一個存儲庫),那麼共享協議緩衝區文件會更麻煩。你可以做的是把它們放在單獨的存儲庫中,這些存儲庫可以作爲依賴項添加到需要它們的微服務中。這是我在我以前的公司見過的。我們有多個用於模式的小型API存儲庫。
因此,如果它很容易使用相同的文件,我會建議這樣做,而不是創建副本。然而,在某些情況下,複製它們更爲實際。缺點是您必須始終在所有副本上應用更改。在最好的情況下,你知道哪些文件要更新,那只是乏味。在最壞的情況下,您不知道要更新哪些文件,並且您的模式將不同步。只有當代碼被髮布時,你纔會發現。
請注意,單片代碼庫並不意味着單片架構。您可以使用微服務,並將所有源代碼保存在一個存儲庫中。這個着名的例子當然是Google。 Google也大量使用協議緩衝區來進行內部通信。我沒有看到他們的源代碼,但如果他們不在服務之間共享協議緩衝文件,我會感到驚訝。
相關問題
- 1. Couchbase微服務體系結構
- 2. NodeJS中的微服務體系結構
- 3. GraphQL和微服務體系結構
- 4. 微服務體系結構圖
- 5. MVC體系結構實現
- 6. 從整體移植到微服務體系結構
- 7. 實現緩存服務器的體系結構問題
- 8. 無服務器體系結構和微服務之間的關係
- 9. 三層體系結構與三層服務器體系結構
- 10. GRPC服務發現
- 11. 基於Java中RESTful API的微服務體系結構
- 12. 微服務體系結構中的消息
- 13. 事件驅動的微服務體系結構中的數據
- 14. 微服務體系結構中的ASP.NET身份
- 15. 在Java微服務體系結構中公開的域模型
- 16. 如果使用Sequelize作爲ORM的微服務體系結構
- 17. 微服務體系結構中的單點登錄
- 18. 微服務認證體系結構與passport.js
- 19. 微服務體系結構中的異步
- 20. 在微服務體系結構中設置開發環境
- 21. 使用服務結構的服務體系結構
- 22. 用戶界面和身份驗證服務器的微服務體系結構
- 23. 驗證微服務體系結構的每項服務中的訪問令牌
- 24. 在微服務架構+的NoSql數據庫[微服務體系結構的數據一致性]
- 25. 使用CellTable實現MVP體系結構
- 26. API密鑰實現的體系結構
- 27. JHipster微服務實體
- 28. ASP.NET面向服務的體系結構
- 29. 體系結構問題:服務
- 30. SOAP Web服務回調體系結構?