Надежность изменения номера поля прото
Например, если я изменился с:
message Request {
int foo = 1;
}
к
message Request {
int bar = 1;
int foo = 2;
}
Безопасно ли менять fooс 1 на 2? Документы не говорят:, These numbers are used to identify your fields in the message binary format, and should not be changed once your message type is in use.но я хотел бы знать, почему.
Ответы
Если у вас есть сериализованная версия сообщения, созданная с помощью первой версии, вы не сможете десериализовать вторую версию сообщения. Если вы используете protobuf для создания модели для хранения в БД или для публикации в брокере, таком как Apache Kafka, вам необходимо следовать соглашению. Если вы используете прото-буфер для создания модели и сервиса для онлайн-использования, вы не должны ничего ломать (если вы повторно сгенерируете все модели)
См. Также ключевое слово зарезервировано , чтобы не использовать повторно старый номер. Дополнительное чтение также здесь