Protocol Buffer平滑升級原則

關於Protocol Buffer優勢這裏就不詳細介紹了,如便於不同開發語言的交互通信,便於服務器上線的平滑升級等。
但Protocol Buffer的Message協議升級是需要注意一些細節,以下幾點作爲開發者需要特殊關注:
1 原有的Message重新填加新的字段信息時不允許有required字段,具體原因就是原有的版本程序無法讀取對應的required字段信息。
2 再修改原有的Message時,要保證不能修改對應的標籤號,就是每一個字段後面的1,2,3序列號,不允許修改。
3 原有的Message添加新的字段時,類型要保證是optional或者repeated。
4 如果Message字段已經存在required字段,重新調整時不允許刪除required字段。
5 如果刪除原有的Message莫個字段時,對應的字段標籤號要保留不允許其他字段使用,比如說刪除了 optional int server_id = 3,這個字段,這個3標籤號是不允許再被其他字段使用的。
6 Protocol Buffer是支持修改對應字段的名稱的,如果optional int server_id = 3修改成optional int idc_id = 3。
7 如果考慮修改Message中的類型,需要注意類型的兼容性,如int32、uint32、int64、uint64和bool等類型之間是兼容的,sint32和sint64是兼容的,string和bytes是兼容的,fixed32和sfixed32,以及fixed64和sfixed64之間是兼容的,爲了保證兼容性,只能將其修改爲與其原有類型兼容的類型,否則就將打破新老消息格式的兼容性。
8 字段類型上optional與repeated也是相互兼容的。
維護協議時記住以上幾點即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章