有赞支付微服务演进:从单体到微服务

2 下载量 48 浏览量 更新于2024-08-29 收藏 1021KB PDF 举报
"有赞支付微服务实践" 有赞是一家快速发展的电商公司,其技术发展历程经历了从单体应用到微服务架构的转变。2014年,有赞使用PHP开发了一个涵盖交易、商品、UMP(用户管理系统)、支付等多个业务领域的单体应用,这被称为v1.0阶段。然而,随着业务流量的增加,单体架构的局限性逐渐显现,导致系统复杂性和脆弱性增加,同时也提高了开发、测试和运维的成本。 为应对挑战,2015年至2016年,有赞开始转向服务化架构,即v2.0阶段。在这个阶段,他们采用了Java作为开发语言,并引入了改进版的Dubbox服务化框架,同时支持跨语言服务调用的Nova框架,实现了服务之间的解耦和独立部署。 到了2017年,有赞进一步发展为微服务架构,即v3.0阶段,这标志着公司开始拥抱社区提供的丰富组件,如Spring Cloud或Netflix OSS等,以提高系统的灵活性、可扩展性和容错性。微服务架构允许将大型系统拆分为多个小型、独立的服务,每个服务都能独立地开发、测试和部署,降低了系统间的耦合度。 在这个过程中,有赞面临的主要问题包括系统复杂性增加、开发效率降低、测试成本上升以及应用水平扩展困难等。为了解决这些问题,架构升级的关键步骤包括: 1. 界定系统边界:通过领域驱动设计(DDD)来明确各个服务的职责范围,定义bounded context。 2. 系统切分:根据业务逻辑和功能需求,将系统拆分为多个服务,实现并行开发和协作。 3. 建立协作机制:定义服务间通信协议,如RESTful API或gRPC,确保服务间的高效协同。 4. 结构设计:在系统、子系统和服务层面进行合理的模块划分,确保代码、数据和表结构清晰,易于维护。 5. 持续重构与优化:定期评估架构设计,及时调整以应对新的挑战和需求。 在这个过程中,架构师需要密切关注可能产生的新问题,例如服务间的依赖管理、监控与日志、数据一致性、安全性和容错性等。同时,也需要不断审视开发流程,确保团队能够遵循最佳实践,降低开发和运维的复杂性。 有赞支付微服务实践展示了如何通过服务化和微服务化来适应业务增长和技术变革,从而实现系统的可扩展性、稳定性和效率提升。这个过程中,有赞不仅关注技术选型,还注重团队协作、开发流程和持续优化,以应对快速变化的业务环境。