web service框架


在一个不断发展的企业应用中,随着业务的不断扩展和技术的持续演进,各个团队构建的功能子系统采用的技术架构五花八门,子系统之间的开发、部署和运维模式也存在较大差异。这给企业的开发和运维效率带来了很大的制约。为了解决这一问题,企业需要一种统一的服务框架来进行技术层面的整合。

传统业务的架构改造核心目的是实现应用服务化,而服务化的核心技术就是分布式服务框架。这种框架的诞生并非偶然,当业务发展到一定阶段后,会面临新的挑战,包括新的商业模式、旧有技术架构无法支撑业务的快速发展等。为了应对这些挑战,往往会产生新的技术架构,分布式服务框架的产生也符合这种技术发展规律。

随着业务的不断发展,应用的功能越来越多,打包、部署和新特性上线周期也变得越来越长。大流量、高并发的用户访问对后台服务的压力越来越大,这迫使企业通过不断增加硬件的方式来满足应用的低时延和高吞吐量需求。这种方式虽然能暂时解决问题,但仍然存在一些棘手的问题无法通过扩容来解决。

为了解决这些问题,大规模系统架构的设计原则是尽可能地拆分,以达到更好的独立扩展与伸缩、更灵活的部署、更好的隔离和容错、更高的开发效率。具体的拆分策略包括纵向拆分和横向拆分。

纵向拆分是根据业务的特性把应用拆开,不同的业务模块独立部署。而横向拆分则是将核心的、公共的业务拆分出来,通过分布式服务框架对业务进行服务化,消费者通过标准的契约来消费这些服务。服务提供者独立打包、部署和演进,与消费者解耦。

使用Web服务或者RPC框架对业务进行拆分之后,需要一个服务治理框架来有效管控服务,提升服务运行期质量,防止业务服务代码架构腐化。服务治理的主要诉求包括生命周期管理、服务容量规划、运行期治理、服务安全和监控等。

为了解决上述问题,企业需要采用高性能、低时延的分布式服务框架来解决业务服务化和服务化后的治理问题。例如,阿里巴巴的Dubbo、淘宝的HSF以及亚马逊内部使用的Coral Service等都是成熟的分布式服务框架,它们都提供了丰富的功能特性,如配置化开发、插件管理体系、异步NIO通信、灵活的路由能力、多协议支持、服务治理等。

虽然不同的分布式服务框架实现细节存在差异,但是核心功能差异不大。通常,分布式服务框架的架构可以抽象为三层:RPC层、Filter Chain层和Service层。而从功能角度看,分布式服务框架通常会包含服务注册中心和服务治理中心两个重要功能。

通过采用分布式服务框架和技术进行服务化改造,企业可以更好地应对业务发展的挑战,提高开发和运维效率,保证业务的快速、健康发展。