Сохранить сообщение буфера протокола в базе данных документов

Мы используем протокольные буферы сообщений через grpc для реализации микросервисной архитектуры между несколькими компонентами, разработанными на нескольких языках (C# — C++ — java).

Один из наших компонентов отвечает за сохранение этих сообщений в хранилище документов. В настоящее время мы используем mongodb с драйвером С# и буферами протоколов, сгенерированными классами С#, для работы с драйвером С# требуется рукописный код сериализации/десериализации).

Есть ли какое-либо хранилище/база данных документов, в которой можно было бы напрямую хранить сообщения протокольных буферов (не в виде двоичных двоичных объектов) и разрешать запросы к свойствам этих сообщений?


person FIF    schedule 19.05.2017    source источник


Ответы (1)


Вы можете написать "модуль Redis" (4.0) для выполнения этой работы, аналогично тому, как реализован рейсон; Модули Redis позволяют разместить собственный код на 100% внутри сервера. Однако вам нужно подумать о том, как должны работать схемы и какие операции вы хотите поддерживать с данными; по сути: можете ли вы оставить его необработанным в одной двоичной строке или вам нужно будет извлечь данные внутри сервера, просто используя необработанный API на границе?

person Marc Gravell    schedule 19.05.2017
comment
Спасибо, я посмотрю на концепцию модуля Redis. Я предполагаю, что серверу потребуется извлечь данные, чтобы разрешить индексирование некоторых свойств сообщения и запросить или отсортировать другие. - person FIF; 19.05.2017
comment
@FIF, который будет выбором дизайна для вас, и будет зависеть от того, что вам нужно делать с данными, и насколько велики значения are и т. д. и т. д.; ничего здесь не встроено - person Marc Gravell; 19.05.2017