返回
携程: 将 Dubbo 应用于 10 万 TPS 高并发场景,分享实战心得
见解分享
2023-12-31 18:34:11
携程的 Dubbo 之路
本文整理自董艺荃在 Dubbo 社区开发者日上海站的演讲。
携程当初为什么要引入 Dubbo 呢?实际上从 2013 年底起,携程内主要使用的就是基于 HTTP 协议的 SOA 微服务框架。这个框架是携程内部自行研发的,整体架构在这近6年中没有进行大的重构。受到当初设计的限制,这个框架有许多问题亟需解决,例如:
- 性能瓶颈: 随着业务量的增长,系统性能越来越成为瓶颈,尤其是在大促期间。
- 扩展性差: 系统扩展性差,无法满足业务快速发展的需要。
- 稳定性差: 系统稳定性差,经常出现故障,影响业务的正常运行。
为了解决这些问题,携程开始寻找一种新的微服务框架。经过调研和评估,携程最终选择了 Dubbo。
Dubbo 在携程的演进之路
携程于 2016 年将 Dubbo 引入生产环境,现已在多条核心业务线上稳定运行,支撑着每天超过 10 万 TPS 的交易量。在 Dubbo 的应用过程中,携程也遇到了一些挑战,并进行了相应的优化。
核心应用场景
Dubbo 在携程的核心应用场景包括:
- 订单服务: 处理机票、酒店、度假等产品的订单交易。
- 商品服务: 管理机票、酒店、度假等产品的商品信息。
- 搜索服务: 提供机票、酒店、度假的搜索功能。
- 支付服务: 提供在线支付功能。
架构设计
携程的 Dubbo 架构采用分层设计,主要分为以下几层:
- 接入层: 提供对 Dubbo 服务的统一接入。
- 网关层: 负责流量的转发和安全控制。
- 服务层: 提供具体的业务服务。
- 注册中心: 负责服务注册和发现。
性能优化
为了提高 Dubbo 的性能,携程进行了以下优化:
- 线程池优化: 对 Dubbo 的线程池进行优化,提高线程池的利用率。
- 缓存优化: 对 Dubbo 的缓存进行优化,提高缓存的命中率。
- 熔断机制: 引入熔断机制,防止服务雪崩。
运维管理
为了保证 Dubbo 的稳定运行,携程建立了一套完善的运维管理体系,包括:
- 监控系统: 实时监控 Dubbo 服务的运行状态。
- 报警系统: 当 Dubbo 服务出现故障时,及时发出报警。
- 应急预案: 制定应急预案,应对 Dubbo 服务的故障。
总结
经过多年的实践,携程已经成为 Dubbo 最大的用户之一。携程在 Dubbo 的应用过程中,积累了丰富的经验,并对 Dubbo 的发展做出了贡献。未来,携程将继续与 Dubbo 社区合作,共同推动 Dubbo 的发展。