gRPC Protobuf 升級時的欄位相容規則,為何能單邊升級
# 一句話總結
protobuf 對欄位「多/少」天生寬容(多的忽略、少的給零值),不會自動噴錯;真正會炸的是「型別不符」或「欄位編號被亂改」。要嚴格驗證得自己在 server 邏輯做。
# TL;DR — 三種情況速查
情況
結果
為什麼
少欄位(client 沒帶某欄位)
✅ 不報錯,該欄位拿型別零值
proto3 沒有 required,每個欄位天生 optional
多欄位 / client 比 server 新(帶了 server 不認得的欄位)
✅ 不報錯,server 忽略並丟棄(unknown fields)
server 解碼時遇到不認
more...


