通過版本控制確保穩定性。
工程很容易忘記更新協議緩衝區檔案和破壞調用服務器,特別是在微服務中。如果服務器協議的簽名(Proto)不完全匹配定義,則請求將失敗。因此,在整個應用程式開發周期中,建立可擴展的流水線模型至關重要。
如何配置協議緩衝區檔案?
兩個不同的 GitHub 存儲庫中或位於沒有共享模塊的不同資料夾中配置 .proto 檔案。接著,使用 LEGO 模組將 .proto 檔案連接起來。不久之後,一個專案開始擁有多個服務以及許多未解決的概念性問題。為了減少重複性的協定,節省時間和以後的信息處理,gRPC 的團隊創建了概念複用的機制,即 import 一個.proto 檔案中的物件到另一個.proto 檔案中。這樣,.proto 檔案就可以使用相同或不同的服務,讓服務使用彼此的緩衝區定義並減少重複工作。
按 Semver 管理版本
遵循 Semver(版本控制)可以幫助確保不同級別的真正兼容性。通常情況下,gRPC 的更新不會破壞兼容性,但可能會有以下影響:
由更改引起的破壞性二進制檔案
以下更改不會破壞 gRPC 協議的兼容性,但需要客戶端進行更新。當使用 .proto 檔案中的字段 Any 時,消息名稱用於識別消息類型,這時消息名稱在網路傳輸。 刪除字段 - 刪除字段的值反序列化為未知字段中的訊息。這不是破壞性更改 gRPC 協議,但如果客戶端進行了更新的話,應該也需更新。為了避免將來意外的重複使用字段編號,可以在消息中使用 protobuf 的 保留 關鍵字,指定以前已經錯誤使用的字段編號和名稱。 重命名對象 - 消息名稱通常不通過網路而傳輸,故不是 gRPC 協議的破壞性更改。但如果客戶端成功地更新了協議最新版本,則還是應更新。
利用版本控制來實現卓越成果。
在完成基本工作之後,可以使用自動化工具來提高 gRPC 的工作流程和生產率。
相關文章
以自信保持包容性
現在就開始使用 A11yWatch,體驗自動化、高效和可訪問的網絡可訪問性工具。