阿里巴巴B2B服务框架:从Perl到Dubbo的演变与挑战

需积分: 10 152 下载量 110 浏览量 更新于2024-07-22 1 收藏 2.41MB PDF 举报
阿里巴巴(B2B)的服务框架探索由钱霄(@shawnqianx)在2011年10月23日进行,针对的是一个面对巨大挑战的IT环境。阿里巴巴的在线平台每天处理超过10亿次的调用,同时管理着超过1000个独立的服务,并且部署在全球范围内的站点上。该演讲主要讨论了以下几个关键点: 1. 应用开发的变迁:阿里巴巴早期的Web应用经历了从Perl CGI、Java、Servlet/JSP、JavaEE、Turbine MVC框架,到轻量级容器的发展。随着业务规模的扩大,应用架构逐渐变化,从单一的JEE解决方案转向拆分大型应用、独立服务和聚合治理。 2. 挑战与对策: - 业务增长导致巨型应用开发和维护成本增加,以及数据库连接数和网络流量的上升。 - 为应对这些挑战,采用了拆分策略,将系统垂直划分为独立的Web系统,剥离共用服务并提供远程调用接口,以及建立专门服务的集群。 - 在通讯层面,从进程内到进程间,再到节点间通信,远程过程调用(RPC)是核心,包括从传统的EJB/RMI/Hessian到自定义的Dubbo框架。 3. 避免重复发明轮子:探讨了是否有必要重新开发自己的框架,考虑到功能需求如LB/FailOver/Routing/QoS等治理需求,以及开源方案的不足,如稳定性、兼容性和规范化问题。阿里巴巴选择了在满足特定需求的同时,兼顾稳定性和团队规范。 4. 实践与目标: - 最初的尝试是Dubbo 0.9,强调核心功能的抽象化,如模块化设计和底层支持服务化,目标是实现零入侵、高性能、高可靠性和适应快速开发的环境。 通过这个演讲,我们可以了解到阿里巴巴在处理海量数据和复杂服务框架方面的实践经验,以及他们如何应对业务增长带来的技术挑战,最终选择和发展出适合自身需求的解决方案。这为我们理解大规模企业级服务架构的设计和优化提供了有价值的参考案例。