论文部分内容阅读
互联网应用已经深入到我们生活的方方面面。大型APP,网站,云服务,都具有强大的服务器端处理能力。近几年崛起并快速发展成熟的云计算服务,更是将服务器协调与计算的能力发挥到极致。当前的大型互联网应用,离不开各种分布式服务的协调作业,集群化带来的高可用,高可靠性。一个成熟互联网应用,包含了各种各样的业务、架构框架以及底层支持。在分布式环境下,一个系统可能会依赖各种各样的系统,也会被各种各样的系统所依赖,极大影响了系统维护与扩展。这种复杂的依赖关系,高耦合度的分布式架构越来越成为一个亟待解决的问题。本文参考了现有的服务化框架,例如支付宝sofa框架,并更深人地探究分布式服务在微服务架构下的实现方法和服务治理方式,设计并实现一个基于ZooKeeper的分布式服务中间件,采用普通Java接口作为微服务载体。一般来说,分布式服务包含两个基本的元素:服务提供者,服务使用者。在分析并使用现有的分布式应用的框架下,本文提出,为了适应微服务架构模式,除了这两个基本元素,需要引入第三个元素:服务协调中心,用来避免在大规模集群、成百个服务并存的情况下配置复杂的服务依赖关系。因此,本文主要研究和实现以下几个功能和创新点:1.提出微服务架构下的接口即服务的架构概念;2.提出一种基于动态class生成的Java方法调用,替代反射式调用;3.引入ZooKeeper做服务协调中心;4.实现基于简单通信协议的远程接口调用方式;5.实现与主流框架和容器的无缝集成;本文在微服务的架构下提出接口即服务原则,使用动态class直接调用Java方法的方式取代Java反射式调用,在高并发下,比框架单纯使用Java反射式调用方式性能提升约8%到10%左右,并且通过与主流框架相融合,引入ZooKeeper注册中心,极大的提升了远程接口服务的易用性,以及微服务集群的服务治理和异常恢复能力,良好的设计通信协议与线程模型,比使用阻塞式线程模型的原生RMI提供了更平滑的达到性能瓶颈的能力。