Я создаю объекты сообщений в proto3 и использую автоматически сгенерированные классы Java. Я хочу, чтобы каждому объекту сообщения был назначен уникальный ключ.
message Obj {
...
string unique_key = 1;
...
}
Во время создания Obj
он получает от микросервиса прото-объект с именем metaData
, который определяется следующим образом:
message metData {
map<string, string> keyFields = 1;
}
На основе записей в объекте metaData
создается unique_key
путем итерации по карте и хеширования каждой из записей. (В keyFields
может быть до 10 записей)
Документация protobuf говорит, что порядок ключей не может быть определен . Как я могу гарантировать, что разные объекты metaData
с одинаковыми записями в keyFields
генерируют одинаковые unique_key
?