通過版本控制確保穩定性。

工程

很容易忘記更新協議緩衝區檔案和破壞調用服務器,特別是在微服務中。如果服務器協議的簽名(Proto)不完全匹配定義,則請求將失敗。因此,在整個應用程式開發周期中,建立可擴展的流水線模型至關重要。

如何配置協議緩衝區檔案?

兩個不同的 GitHub 存儲庫中或位於沒有共享模塊的不同資料夾中配置 .proto 檔案。接著,使用 LEGO 模組將 .proto 檔案連接起來。不久之後,一個專案開始擁有多個服務以及許多未解決的概念性問題。為了減少重複性的協定,節省時間和以後的信息處理,gRPC 的團隊創建了概念複用的機制,即 import 一個.proto 檔案中的物件到另一個.proto 檔案中。這樣,.proto 檔案就可以使用相同或不同的服務,讓服務使用彼此的緩衝區定義並減少重複工作。

使用 `npm i @a11ywatch/protos` 從 npm 直接引用協議緩衝區。
協議定義檔案的範例

按 Semver 管理版本

遵循 Semver(版本控制)可以幫助確保不同級別的真正兼容性。通常情況下,gRPC 的更新不會破壞兼容性,但可能會有以下影響:

由更改引起的破壞性二進制檔案

以下更改不會破壞 gRPC 協議的兼容性,但需要客戶端進行更新。當使用 .proto 檔案中的字段 Any 時,消息名稱用於識別消息類型,這時消息名稱在網路傳輸。 刪除字段 - 刪除字段的值反序列化為未知字段中的訊息。這不是破壞性更改 gRPC 協議,但如果客戶端進行了更新的話,應該也需更新。為了避免將來意外的重複使用字段編號,可以在消息中使用 protobuf 的 保留 關鍵字,指定以前已經錯誤使用的字段編號和名稱。 重命名對象 - 消息名稱通常不通過網路而傳輸,故不是 gRPC 協議的破壞性更改。但如果客戶端成功地更新了協議最新版本,則還是應更新。

利用版本控制來實現卓越成果。

在完成基本工作之後,可以使用自動化工具來提高 gRPC 的工作流程和生產率。

Jeff Mendez

我的名字是 Jeff,我是 A11yWatch 的創立者和創建者。

相關文章

以自信保持包容性

現在就開始使用 A11yWatch,體驗自動化、高效和可訪問的網絡可訪問性工具。