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不管是小数据量还是大数据量都保持比较稳定的性能

最新文章

  1. 自适应备忘录 demo
  2. .NET笔记(一)
  3. 【总结】我所整理的float, inline-block还有position:absolute
  4. PL/SQL 查找1-100之间的素数
  5. nodejs 下载,安装,测试(windows环境下)
  6. laravel-模板引擎Blade
  7. java中文乱码解决之道(五)—–java是如何编码解码的
  8. 重写ViewPager实施单一交有关切换到这个问题,并没有缓存
  9. 10277 - Boastin' Red Socks
  10. 【顶】在node环境下玩转less
  11. Windows下Nginx的安装与使用(一):配置端口转发
  12. 仅仅有五行的Floyd最短路算法
  13. 关于js的对象创建方法(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)
  14. day053 url反向解析图解 模板渲染
  15. Flask最强攻略 - 跟DragonFire学Flask - 第一篇 你好,我叫Flask
  16. VMware Workstation11安装Mac OS X 10.10虚拟机
  17. Jmeter(七)Jmeter脚本优化(数据与脚本分离)
  18. Django ModelForm类生成表单
  19. mysql取电话号码的后四位字符
  20. excel合并同类项去重求和功能

热门文章

  1. Java开源生鲜电商平台-支付模块的设计与架构(源码可下载)
  2. django+appium实现UI自动化测试平台---构思版
  3. .NET之AutoMapper对象映射工具运用
  4. 夜神模拟器链接Android studoid
  5. mac的terminal快捷键
  6. window安装mysql5.7解压版(解决乱码问题)
  7. thinkphp 自动生成模块目录结构
  8. 图解HTTPS建立过程
  9. 通过配置tomcat实现项目免部署
  10. MongoDB之DBref(关联插入,查询,删除) 实例深入