zoukankan      html  css  js  c++  java
  • 微服务框架surging学习之路——序列化 (转载https://www.cnblogs.com/alangur/p/10407727.html)

    微服务框架surging学习之路——序列化

     

    1.对微服务的理解

      之前看到在群里的朋友门都在讨论微服务,看到他们的讨论,我也有了一些自己的理解,所谓微服务就是系统里的每个服务都 可以自由组合。自由组合这个就很厉害了,这样一来,每个服务与服务之间基本的物理 耦合为0,横向扩展整个系统就会非常非常灵活。

    surging的厉害之处也恰恰是可以做到这些,所以surging 是.net core 里面一个非常不错的微服务框架。

    2.surging的序列化方式

    2.1 json.Net

    surging 使用的是Newtonsoft.Json, 它是基于json格式的序列化和反序列化的组件

    json.net 有以下优点:

           侵入性:可以不添加attribute,就能进行序列化操作

           灵活性:可以灵活性配置,比如允许被序列化的成员自定义名字,屏蔽的非序列化属性成员

           可读性: 数据格式比较简单, 易于读写

           依赖性:可以序列化成JObject,无需依赖对象进行序列化和泛型化。

    2.2 protobuf

    surging 使用的是protobuf-net, 它是基于二进制格式的序列化和反序列化的组件

    protobuf 有以下优点:

         性能高 : 序列化后体积相比Json和XML很小,适合RPC二进制传输
       跨语言:支持跨平台多语言
            兼容性:消息格式升级和兼容性还不错
            速度快 :序列化反序列化速度很快,快于Json的处理速度

    2.3 messagepack

    messagepack:surging 使用的是MessagePack-CSharp, 它是基于二进制格式的序列化和反序列化的组件

    messagepack有以下优点:

          性能高:序列化后体积相比Json和XML很小,适合RPC二进制传输
       跨语言:支持跨平台多语言
            兼容性:消息格式升级和兼容性还不错
            速度快 :序列化反序列化速度很快,快于Json的处理速度

    针对于protobuf和messagepack都是基于二进制格式的序列化和反序列化,优点都一样,但是基于messagepack的MessagePack-CSharp组件侵入性更小,可以不需要加attribute,而且性能上更优.

     3.每种序列化组件的性能对比

    一张图就可以说明问题

    通过上图,可以发现messagepack不管是小数据量还是大数据量都保持比较稳定的性能

  • 相关阅读:
    [PKUWC2018][LOJ2537]Minimax(线段树合并)
    [NOI2019][洛谷P5471]弹跳(dijkstra+KD-Tree)
    [BZOJ4770]图样(概率期望、二进制数位dp)
    [SPOJ11482][BZOJ2787]Count on a trie(广义SA+长链剖分+BIT)
    [HEOI/TJOI2016][洛谷P4094]字符串(SA+主席树)
    [BZOJ3270]博物馆(矩阵求逆)
    [NOI2016][洛谷P1117]优秀的拆分(SA)
    [NOI2018][洛谷P4770]你的名字(SAM+SA+主席树)
    设置echarts两个y轴的0点一致
    echarts中饼图或环形图的高亮效果(点击高亮/默认某一条高亮)
  • 原文地址:https://www.cnblogs.com/Jeely/p/10774664.html
Copyright © 2011-2022 走看看