携程技术转型:从HTTP到Dubbo的演进之路
171 浏览量
更新于2024-08-28
收藏 770KB PDF 举报
"这篇文章讲述了携程从使用自研的基于HTTP协议的SOA微服务框架转向引入Dubbo作为高性能RPC框架的过程。携程面临的主要问题是自研框架的扩展性不足以及HTTP协议在高并发下的性能瓶颈。Dubbo因其优秀的架构设计、高性能和社区支持成为了解决这些问题的理想选择。文章还详细介绍了在携程落地Dubbo时,如何处理服务治理和监控的挑战,包括使用自研的去中心化注册中心Artemis,以及如何将Dubbo与现有的服务数据模型集成。"
在携程的技术演进过程中,引入Dubbo的主要动机是解决由自研SOA框架带来的局限性。该框架由于设计之初的限制,导致扩展性较差,不便于用户添加自定义功能。此外,基于HTTP协议的服务在处理高并发请求时,由于其单连接单请求的特性,使得服务端资源(如连接数和线程池)面临压力,影响了性能。而Dubbo作为一种高性能的RPC框架,因其优秀的架构设计,能够提供更好的扩展性和更高效的数据传输方式,从而有效解决这些问题。
在实际落地Dubbo的过程中,携程首要解决的是服务治理和监控。服务治理方面,携程拥有自己的服务注册中心Artemis,它是基于Netflix Eureka的自研实现,采用去中心化的对等集群架构。服务实例与任意节点保持长连接,通过节点间的同步保证数据一致性。服务数据模型与Dubbo接口相对应,每个服务实例都有唯一标识ServiceID,用于服务注册和客户端查找服务实例。
服务注册时,由于Dubbo自身没有ServiceID的概念,携程采取的策略是在Service和Reference配置中添加额外信息,将接口映射到ServiceID,实现了Dubbo与注册中心的无缝对接。这样一来,即使使用新的框架,也能充分利用现有的服务治理系统。
监控方面,文章虽然没有详细展开,但可以推测携程会构建一套与Dubbo兼容的监控体系,可能包括服务调用的性能指标、健康检查和故障排查等功能,以确保服务质量和稳定性。
携程引入Dubbo是为了提升服务性能、改善扩展性,并利用Dubbo的成熟服务治理能力,同时通过自研组件的适配,确保了技术栈的平滑过渡和现有系统的兼容性。这一过程展示了携程在技术选型和系统演进中的谨慎和创新,也体现了对开源技术的接纳和支持。
2018-02-22 上传
点击了解资源详情
2021-09-14 上传
2021-09-14 上传
2021-08-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38694141
- 粉丝: 4
- 资源: 960
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜