分布式RPC
2015-11-17 15:33
183 查看
影响RPC性能的因素:
一是传输方式,二是序列化
TCP 是传输层协议,HTTP 是应用层协议,而传输层较应用层更加底层,在数据传输方面,越底层越快,因此,在一般情况下,TCP 一定比 HTTP 快。
就序列化而言,Java 提供了默认的序列化方式,但在高并发的情况下,这种方式将会带来一些性能上的瓶颈。
于是市面上出现了一系列优秀的序列化框架,比如:Protobuf、Kryo、Hessian、Jackson 等,它们可以取代 Java 默认的序列
化,从而提供更高效的性能。
我们需要将服务部署在分布式环境下的不同节点上,通过服务注册的方式,让客户端来自动发现当前可用的服务,并调用这些服务。
根据以上技术需求,我们可使用如下技术选型:
1. Spring:它是最强大的依赖注入框架,也是业界的权威标准。
2. Netty:它使 NIO 编程更加容易,屏蔽了 Java 底层的 NIO 细节。
3. Protostuff:它基于 Protobuf 序列化框架,面向 POJO,无需编写 .proto 文件。
4. ZooKeeper:提供服务注册与发现功能,开发分布式系统的必备选择。
一是传输方式,二是序列化
TCP 是传输层协议,HTTP 是应用层协议,而传输层较应用层更加底层,在数据传输方面,越底层越快,因此,在一般情况下,TCP 一定比 HTTP 快。
就序列化而言,Java 提供了默认的序列化方式,但在高并发的情况下,这种方式将会带来一些性能上的瓶颈。
于是市面上出现了一系列优秀的序列化框架,比如:Protobuf、Kryo、Hessian、Jackson 等,它们可以取代 Java 默认的序列
化,从而提供更高效的性能。
我们需要将服务部署在分布式环境下的不同节点上,通过服务注册的方式,让客户端来自动发现当前可用的服务,并调用这些服务。
根据以上技术需求,我们可使用如下技术选型:
1. Spring:它是最强大的依赖注入框架,也是业界的权威标准。
2. Netty:它使 NIO 编程更加容易,屏蔽了 Java 底层的 NIO 细节。
3. Protostuff:它基于 Protobuf 序列化框架,面向 POJO,无需编写 .proto 文件。
4. ZooKeeper:提供服务注册与发现功能,开发分布式系统的必备选择。
相关文章推荐
- 微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK
- C#调用C++编写的dll
- C#编程实现四舍五入、向上及下取整的方法
- getprop使用简介
- 你不再需要动态网页——编辑-发布-开发分离
- spring mvc启动成功配置也成功,但访问不到controller也访问不到任何jsp的解决办法
- Scramble String
- 利用git push向服务器一键部署代码
- android hal学习——测试整个流程
- ACM常用模板——数据结构——区间最值查询RMQ
- pentaho cde 画图参数介绍
- Zabbix 客户端安装教程(第二篇)
- getComputedStyle方法熟悉
- mysql连接超时的参数设置
- Run-Time Check Failure #0,The value of ESP was not properly saved 错误解决
- 利用Html 5的canvas标签绘制水流和水池动画
- 了解指针,分分钟的事情 C++筆記--指針
- IOS8以上的UIAlertView
- Autotools使用一
- 控件Radio注意事项