携程无线App架构演进:组件化与微服务
5星 · 超过95%的资源 需积分: 9 141 浏览量
更新于2024-07-20
收藏 2.16MB PDF 举报
"携程下一代无线App架构设计,陈浩然,携程旅行网无线开发总监,SDCC 2016,架构"
携程作为知名的在线旅游服务平台,在无线App领域进行了深入的架构设计改革,以适应移动互联网的发展。陈浩然在演讲中详细介绍了携程无线App的进化过程和面临的挑战,以及解决这些问题的技术策略。
首先,陈浩然提出了App工程的解耦和组件化架构。这是应对组织和技术复杂性的关键。遵循Conway's Law,即系统的结构反映其组织的沟通结构,携程将多个业务团队与基础框架团队分开。业务团队能够自主决定设计、开发和发布周期,而基础框架团队则负责提供开发框架、功能SDK以及系统服务。通过这种方式,实现了技术解耦,包括将传统的n-层架构转变为微服务架构,以及数据服务的解耦,以实现数据模型的封装、管理和访问。此外,还引入了组件化和插件化开发,允许App端的升级和维护更加灵活。
然而,携程在实现无线化过程中遇到了一系列问题,如进程耦合、缺少负载均衡、监控不足、熔断机制缺失以及安全风险等。为了解决这些问题,携程构建了Mobile Gateway作为服务端入口,对各个服务进行统一管理和调度,如酒店Service、机票Service等,同时,通过CtripWireless、CtripData和CtripFoundation等模块实现解耦,形成了CTBusiness、CTFoundation和CTComm等组件化结构。
App工程配置的解耦是另一个重要方面。携程将核心基础功能如通讯、定位、Hybrid、数据库等做成SDK,方便其他业务单元使用,减少重复开发。公用业务功能也被组件化,如地图、日历等,以降低工作量。App业务容器化的实施,使Bundle间相互独立,提高了整体的稳定性和隔离性,同时也增强了扩展性和伸缩性,支持Bundle的动态加载和Hotfix。为了提升性能,每个Bundle都有独立的性能统计指标。这些改变得益于插件化和动态加载框架DynamicAPK,它降低了迁移成本,减少了对App的更新影响。
携程的下一代无线App架构设计旨在通过组织和技术层面的解耦、组件化、服务治理和优化,以及利用先进的动态加载技术,来提高App的灵活性、稳定性和效率,从而更好地适应快速变化的移动互联网市场。这一架构设计对于其他大型互联网公司的App开发具有重要的参考价值。
1631 浏览量
2021-09-19 上传
点击了解资源详情
2021-01-27 上传
2023-09-24 上传
2024-07-20 上传
2015-10-08 上传
2015-09-16 上传
孙_思
- 粉丝: 234
- 资源: 17
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍