美文网首页
java序列化框架

java序列化框架

作者: canezk | 来源:发表于2016-11-02 14:51 被阅读31次

    序列化需要考虑的点

    1、通用性:是否跨平台,是否跨语言
    2、性能成本:时间;空间
    3、可读性:二进制 vs xml vs json(等等)
    4、安全性:跨机房访问
    

    常用框架

    1、thrift
    2、protobuf
    3、xml
    4、json
    5、avro
    

    选型建议

    以上描述的五种序列化和反序列化协议都各自具有相应的特点,适用于不同的场景:
    1、对于公司间的系统调用,如果性能要求在100ms以上的服务,基于XML的SOAP
    协议是一个值得考虑的方案。
    2、基于Web browser的Ajax,以及Mobile app与服务端之间的通讯,JSON协议是
    首选。对于性能要求不太高,或者以动态类型语言为主,或者传输数据载荷很小的
    的运用场景,JSON也是非常不错的选择。
    3、对于调试环境比较恶劣的场景,采用JSON或XML能够极大的提高调试效率,降
    低系统开发成本。
    4、当对性能和简洁性有极高要求的场景,Protobuf,Thrift,Avro之间具有一定的
    竞争关系。
    5、对于T级别的数据的持久化应用场景,Protobuf和Avro是首要选择。如果持久化
    后的数据存储在Hadoop子项目里,Avro会是更好的选择。
    6、由于Avro的设计理念偏向于动态类型语言,对于动态语言为主的应用场景,Avro
    是更好的选择。
    7、对于持久层非Hadoop项目,以静态类型语言为主的应用场景,Protobuf会更符
    合静态类型语言工程师的开发习惯。
    8、如果需要提供一个完整的RPC解决方案,Thrift是一个好的选择。
    9、如果序列化之后需要支持不同的传输层协议,或者需要跨防火墙访问的高性能场景,Protobuf可以优先考虑。
    

    参考

    常用框架对比
    美团点评团队

    相关文章

      网友评论

          本文标题:java序列化框架

          本文链接:https://www.haomeiwen.com/subject/xfivuttx.html