0
点赞
收藏
分享

微信扫一扫

打车业务系统的架构升级

1 业务架构演进

1.1 订单系统

快速发展期,对技术团队与系统的要求:稳定性,扩展性,合理性。但系统不能突变,如何搞定“快”与“稳定性,扩展性,合理性”的过渡演进?

早期多业务(2C、2B、直营城市、下沉城市等),每个业务更适合有自己独立的订单库,方便快速试错。而现在则需要统一订单中心,提升稳定性、保证扩展性,并维持较低水平的维护成本。

1.2 经纬度检索

司机的经纬度上报与检索,是打车的业务核心之一。早期我们直接使用数据库来存储与检索经纬度,快速实现、快速迭代。如果现在还用数据库,肯定性能扛不住,所以现在则抽离了单独的服务来实现。

1.3 消息中心

早期 GPS 上报,快速实现了一套消息通道;订单推送,快速实现了一套;用户与司机聊天,快速实现了一套。现在,我们则把共性的需求抽象除了消息中心,以满足不同场景,在扩充业务场景的适合,能够复用系统。

量级不同的阶段因为对系统的需求不同,所以对应的系统架构也不会相同。发展的这几个阶段中,在业务架构设计方面还是走了一些弯路,来看咋解决的。

2 踩坑

因为业务的不同阶段对架构的要求不同,在架构迭代或者重构的过程会比较痛苦:

  • 要完成架构升级与转型
  • 又不能影响业务需求的开发与迭代

通过一个“订单库从分开,到订单中心合并”的例子。

2.1 第一个业务

订单系统,如何快速实现?第一个业务(打车业务),闭环了自己的订单库:

打车业务系统的架构升级_迭代

2.2 第二个业务

为了快速迭代,也闭环了自己的订单库:

打车业务系统的架构升级_数据库_02

2.3 第三、第四个业务(货运业务、合伙人业务)

第三个业务,第四个业务,对点不对劲了,得统一。业务三有了统一意识,尝试统一订单库,业务四有了微服务意识,尝试建立订单中心,但并不彻底。

打车业务系统的架构升级_迭代_03

2.4 当有订单统一展现需求

要访问多个订单库了,开始抓狂,抱怨傻领导,为啥早期为何不统一?

打车业务系统的架构升级_订单系统_04

下决定要统一!统一是合理的,但咋统一?

3 统一大计

3.1 数据收口

尽量减少对原业务的影响。

服务写收口,服务读收口,1年才完成订单中心的统一

打车业务系统的架构升级_订单系统_05

3.2 服务收口

尽量支持分业务平滑过渡

打车业务系统的架构升级_数据库_06

3.3 旧系统下线,完成统一

打车业务系统的架构升级_数据库_07

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都国企技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

参考:

  • 编程严选网
举报

相关推荐

0 条评论