将Protobuf消息持久化到数据库
持久化使用协议buf3定义的数据的正确方式是什么。我使用的是Golang和Java,这两个地方都支持ORM。在java中使用Hibernate,在golang中使用Gorm。这两个地方我都需要将生成的代码转换成相应的实体模型。我觉得为了被ORM理解而保持相同的对象结构是比较痛苦的。有没有什么数据库可以让我原封不动地和Protobuf对象一起使用。或者,我可以在协议Buf本身中定义对象之间的关系。
任何帮助都非常感谢。
解决方案
此问题有一个非直截了当的解决方案。
Protobuf 3为消息制定了JSON mapping标准。一旦将消息序列化为JSON,您就有多种选择将其存储在数据库中。
以下(以及更多)数据库可以存储JSON数据:
- MariaDB
- PostgreSQL
- MongoDB
相关文章