阿里巴巴B2B服务框架:演进、挑战与Dubbo实践
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"阿里巴巴(B2B)的服务框架探索(钱霄)"
阿里巴巴(B2B)的技术团队在面对日益增长的业务需求和复杂的应用架构时,经历了一系列的技术变迁和挑战。早期,阿里巴巴B2B部门从Perl CGI逐步转向Java技术,经历了Servlet/JSP、JavaEE、Turbine MVC框架以及自研的WebX框架的发展。随着业务的快速发展,单一的大型应用逐渐变得难以维护,导致开发成本上升,部署效率降低。
面临的主要挑战包括:
1. 应用规模的扩大,导致开发和维护成本增加,部署效率下降。
2. 应用数量的增多,使得数据库连接数攀升,加重了数据库压力。
3. 访问量的逐年增长,促使服务器数量增加,对数据连接、数据库和负载均衡设备提出了更高要求。
4. 对性能和可靠性的要求不断提升。
为应对这些挑战,阿里巴巴采取了以下策略:
1. 拆分巨型系统,将其垂直拆分为多个独立的Web系统,以降低开发维护成本。
2. 剥离共享服务,提供远程调用接口,实现服务共生。
3. 独立核心服务,构建服务集群,提供专业服务。
4. 减少专用负载均衡设备的使用,让应用支持分布式调用和调度。
在通信方面,从进程内通信到进程间通信,再到节点间的通信,RPC(远程过程调用)成为了基础。阿里巴巴B2B经历了从EJB到RMI/Hessian,再到XML-RPC/WS的演变,最终发展出定制的框架——Dubbo。
Dubbo的诞生并非简单地重复造轮子,而是出于以下需求:
1. 提供超出纯RPC功能的附加服务,如负载均衡、故障转移、路由和服务质量控制。
2. 考虑到稳定性、兼容性和集团内部的统一规范,以适应大规模开发团队的需求。
Dubbo的核心目标是实现“零入侵”,即服务化对现有应用的改动最小;高性能;高可靠性和高并发环境的适应性;以及模块化设计,以支持底层的服务化。在实践中,Dubbo 0.9作为初期尝试,通过核心功能的抽象,逐步构建起一套完整的服务框架。
阿里巴巴(B2B)的服务框架演进是一个从简单应用架构到复杂服务化架构的过程,涉及到技术选型、服务拆分、通信机制优化等多个层面。Dubbo作为这一过程的重要成果,为大规模分布式服务提供了有效的解决方案。
2019-05-16 上传
2013-09-16 上传
2024-09-07 上传
2024-09-07 上传
2024-09-07 上传
2024-09-07 上传
![](https://profile-avatar.csdnimg.cn/74780e11ec4f489788cb35c67b5e3134_tiyager.jpg!1)
tiyager
- 粉丝: 12
- 资源: 22
最新资源
- AirKiss技术详解:无线传递信息与智能家居连接
- Hibernate主键生成策略详解
- 操作系统实验:位示图法管理磁盘空闲空间
- JSON详解:数据交换的主流格式
- Win7安装Ubuntu双系统详细指南
- FPGA内部结构与工作原理探索
- 信用评分模型解析:WOE、IV与ROC
- 使用LVS+Keepalived构建高可用负载均衡集群
- 微信小程序驱动餐饮与服装业创新转型:便捷管理与低成本优势
- 机器学习入门指南:从基础到进阶
- 解决Win7 IIS配置错误500.22与0x80070032
- SQL-DFS:优化HDFS小文件存储的解决方案
- Hadoop、Hbase、Spark环境部署与主机配置详解
- Kisso:加密会话Cookie实现的单点登录SSO
- OpenCV读取与拼接多幅图像教程
- QT实战:轻松生成与解析JSON数据