大厂出行业务架构演进踩坑记!

JavaEdge

共 1615字,需浏览 4分钟

 ·

2024-04-10 16:10


点击下方“ JavaEdge ”,选择“ 设为星标

第一时间关注技术干货!

1 业务架构演进

1.1 订单系统

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

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

1.2 经纬度检索

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

1.3 消息中心

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

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

2 踩坑

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

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

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

2.1 第一个业务

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

1babb53f3785571c55a26640afcaa754.webp

2.2 第二个业务

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

db71fe53afec84f441b5ae38a699867d.webp

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

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

c968e9050de4a8998d2db4fdf2c297b8.webp

2.4 当有订单统一展现需求

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

89c0862dea086b19872576e30675ddc3.webp

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

3 统一大计

3.1 数据收口

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

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

8bdbd8574c87a1cc5f7302670de70221.webp

3.2 服务收口

尽量支持分业务平滑过渡

691584656b62e297c4241d3786ace373.webp

3.3 旧系统下线,完成统一

bd23a414f983b0ace7e8ea074591d349.webp 参考: 编程严选网(www.javaedge.cn)

写在最后

编程严选网(www.javaedge.cn),程序员的终身学习网站已上线!

点击阅读原文,即可访问网站!

欢迎长按图片加好友,我会第一时间和你分享软件行业趋势面试资源学习途径等等。

添加好友备注【技术群交流】拉你进群,更多教程资源应有尽有

关注公众号后,在后台私信:

  • 回复 架构师 ,获取架构师学习资源教程
  • 回复【面试 ,获取最新最全的互联网大厂面试资料
  • 回复【 ,获取各种样式精美、内容丰富的简历模板
  • 回复 路线图 ,获取直升Java P7技术管理的全网最全学习路线图
  • 回复 大数据 ,获取Java转型大数据研发的全网最全思维导图
  • 微信【ssshflz】私信  【副业】 进副业交流群
  • 点击 阅读原文 ,即可访问程序员一站式学习网站
    
                                                            

最近在准备面试,为大家准备一份2024最新最全Java学习路线一条龙

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报