阿里巴巴B2B服务框架:演进、挑战与Dubbo探索

需积分: 10 2 下载量 135 浏览量 更新于2024-07-26 收藏 2.41MB PDF 举报
"阿里巴巴(B2B)的服务框架探索(钱霄)" 阿里巴巴(B2B)作为全球知名的技术驱动型企业,其服务框架的发展历程反映了互联网行业的技术变迁。这篇内容主要由阿里巴巴(B2B)技术部的钱霄分享,探讨了在面对日益复杂的业务挑战时,服务框架如何从最初的简单应用开发演变到高度复杂、分布式的架构。 在应用开发技术的变迁中,阿里巴巴经历了从早期的Perl CGI到Java,再到基于Servlet、JSP、JavaEE、TurbineMVC框架以及自制WebX框架的过程。随着业务的快速扩展,单一的大型应用逐渐无法满足需求,导致开发维护成本增加、部署效率降低,以及数据库连接数和服务器数量的压力。因此,阿里巴巴开始寻求应用拆分、服务剥离和独立,并引入分布式调用来平衡负载。 挑战主要体现在三个方面:应用规模庞大导致开发维护难度增加、服务器和数据库压力增大、以及对性能和可靠性的高要求。为了应对这些挑战,阿里巴巴采取了服务拆分、服务剥离、独立服务搭建和分布式调用/调度等策略。在通信层面,从进程内到进程间,从节点内到节点间,远程调用变得越来越重要,这也催生了RPC(远程过程调用)技术的发展。 在RPC技术方面,阿里巴巴经历了从EJB到RMI/Hessian、XML-RPC/WS,最终发展出自己的定制框架——Dubbo。Dubbo不仅提供了基础的RPC功能,还包含了负载均衡、故障转移、路由和服务质量控制等功能,以满足大规模服务治理的需求。选择自建框架的原因在于开源解决方案可能存在的稳定性、兼容性问题,以及集团内部对统一规范的需要。 Dubbo的初始目标包括零侵入性、高性能、高可靠性、适应高并发环境和模块化设计。Dubbo0.9是这一系列实践的起点,它着重于核心功能的抽象,如服务注册与发现、服务调用、负载均衡、容错机制和协议支持等,从而逐步构建出一个强大的服务治理框架。 在后续的演进中,Dubbo和其他相关组件一起,成为了阿里巴巴云上服务化架构的重要组成部分,支撑着阿里巴巴每天处理的海量请求。这种服务框架的探索和发展对于理解现代互联网企业的技术架构和演进历程具有重要的参考价值。