Java分布式开发中的RPC
来源:互联网 发布:深圳市飞扬空间网络 编辑:程序博客网 时间:2024/05/17 03:47
最近在努力学关于Java分布式开发的内容,推荐大家一本书,陈康贤的《大型分布式网站架构设计与实践》,文后有资源链接。
RPC,远程过程调用,是实现分布式计算的基础。
它有两种实现方式:
1.基于TCP协议的RPC;
2.基于HTTP协议的RPC;
其中涉及到的关键技术是对象的序列化和反序列化,一个简单的RPC过程包括一个服务消费者和服务提供者,服务消费者需要使用服务提供者的提供的服务,就需要传给服务提供方相关的信息,这些信息包括服务名称(实际上是一个接口),方法名称,方法的参数类型,参数个数等参数列表信息以及对应的参数,服务提供者根据这些信息返回处理结果给服务消费者,一次RPC完成。
两种实现方式的对比:
1.基于TCP协议实现的RPC,由于处于协议栈的下层,能够更灵活地对协议字段进行定制,减少网络传输字节数,降低网络开销,提高性能,实现更大吞吐量和并发数。但是需要更多地关注底层复杂的细节,实现的代价更高,且由于所定义协议自身的局限性,难以得到平台厂商和开源社区的支持,较难实现跨平台调用。
2.而基于HTTP协议的RPC实现来说,很多成熟开源Web容器已经帮我们处理好了这些事情,如Tomcat、Jboss、Apache等,开发人员可以将更多的精力集中在业务的实现上,而非处理底层细节,当然,基于HTTP协议的实现也有其劣势的一面。由于是上层协议,发送包含同等内容的信息,使用HTTP协议传输所占用的字节数肯定要比使用TCP协议所占用的字节数更多。因此,同等网络环境下,通过HTTP协议传输相同的内容,效率会比基于TCP协议的数据传输要低,信息传输的时间也较长。
当然,通过优化代码和使用gzip数据压缩,能够缩小这一差距。
权衡利弊,结合实际环境中其性能对于用户体验的影响来看,基于HTTP协议的RPC还是有很大优势的。
百度网盘:http://pan.baidu.com/s/1slRlgL3
- Java分布式开发中的RPC
- Java常见分布式协议比较-RPC
- 分布式系统中的必备良药 —— RPC
- 分布式开发-- RPC原理及实现
- Distributed RPC(分布式RPC)-Storm
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 探索分布式rpc
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- 轻量级分布式 RPC 框架
- RPC分布式系统调用
- 不得不说的那些坑(一)
- VS2013+QT5.6.2安装笔记
- Centos 6.5 Install rabbitmq 3.6.7
- MarkdownPad2.5 注册码
- 7. 主成分分析 PCA
- Java分布式开发中的RPC
- ReactNative-01(环境搭建及工具配置)
- 不同数据库之间的数据迁移方案设计及迁移工具选择
- 海量数据处理分析的经验总结
- ASP如何调用Delphi开发的DataSnap/Restful接口服务
- python 高阶函数之自定义排序
- android developer tiny share-20170507
- DNS服务器的配置
- python中IndentationError: expected an indented block错误的解决方法