论文部分内容阅读
当前存在大量的企业应用服务化部署时使用HTTP+JSON的远程过程调用方式保证服务之间的依赖关系,在每次服务调用的时候都需要重新建立连接,当并发量较大的时候,会创建大量的TCP连接,严重影响服务的性能。增加服务器会导致成本的上涨,但对服务调用效率提高作用不大。且HTTP协议不是专为RPC(Remote Procedure Call,远程过程调用技术)设计,作为数据传输协议会传送大量的无效数据。本文设计并实现了一种轻量级分布式RPC框架,该框架基于TCP/IP设计并实现了自定义传输格式,能够有效提高网络发送数据的有效占比。本文将框架的功能抽象成数据传输、服务管理、服务调用三个主要功能。数据传输功能为RPC调用过程中的数据发送提供可靠的保证。服务管理功能用于管理服务的发布/取消发布、订阅/取消订阅等管理服务的功能。服务调用功能是本框架支持分布式服务调用的核心,设计并实现了分布式负载均衡、服务容错、服务监控等功能,保证框架在分布式环境中的良好可靠运行。框架提供了 Ext扩展机制,整个框架的所有实现都是可配置、可替换的,默认提供了大部分功能的实现,在实际使用过程中如果无法满足用户的需求,用户可以使用Ext扩展机制自行扩展框架的功能。在本框架实现的过程中,通过字节码编译、缓存行填充、FastThreadLocal等技术改进了 Java自身存在的一些性能不足的问题,为框架的高性能提供了可靠的保证。本框架是为了解决分布式远程过程调用性能不高且使用复杂的问题,经过测试表明,本框架比同类型框架Dubbo的性能提升60%左右,能够满足分布式环境中RPC调用需求,有效提高分布式服务的整体运行效率以及编程效率,减少服务调用发生错误的概率。本框架使用简单有效的配置,就能够为企业应用开发提供分布式服务调用的能力。