java – 用于将发布/注释的多个数据对象序列化为单个序列化数据的协议缓冲区

前端之家收集整理的这篇文章主要介绍了java – 用于将发布/注释的多个数据对象序列化为单个序列化数据的协议缓冲区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在开发Java和Cassandra数据库之上的社交应用程序.我需要在数据库中存储用户共享帖子的帖子/评论,我希望每个评论/帖子&然后将序列化数据存储在一列中的数据库中.因此,对于每个评论,将有一个列以序列化格式存储此数据: –

>评论数据(最多约700个字符的字符串)
> CommentorId(长型)
> CommentTime(时间戳)

同样,帖子的数据将被序列化并存储为单个列.

前端在每次检索该帖子时都需要快速反序列化.

我正在寻找协议缓冲区作为可能的解决方案.想知道为此任务选择协议缓冲区是否是正确的选择.我正在寻找一个高性能的&快速序列化&反序列化算法,可以在应用程序中大量使用.

是否可以将数据以序列化格式发送给客户端,然后可以对其进行反序列化?服务器到客户端通信?

最佳答案
协议缓冲区肯定提供了序列化,虽然事情的RPC方面是你想象的(通常简单和基于套接字的工作非常好).

protobuf都支持数据类型(尽管您可能希望在日期的unix时期使用ms之类的东西).请注意,protobuf不包括压缩(除非您还将gzip等应用于流).所以消息将“比字符串长一点(它总是在protobuf中使用UTF-8编码).我说”有点“因为整数类型的varint算法可以为id提供1到10个字节之间的任何内容和时间戳,取决于它们的大小.字段标题的一些(3个,可能)字节.

如果听起来不错,那么它应该可以正常工作.但是,如果您有大量文本数据,则可能还需要通过gzip运行protobuf流. Java通过主谷歌主干在protobuf中提供了出色的支持.

猜你在找的Java相关文章