架构实战案例解析
王庆友
前1号店首席架构师
立即订阅
1709 人已学习
课程目录
已更新 6 讲 / 共 22 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 想吃透架构?你得看看真实、接地气的架构案例
免费
概述篇 (1讲)
01 | 架构的本质:如何打造一个有序的系统?
业务架构篇 (4讲)
02 | 业务架构:作为开发,你真的了解业务吗?
03 | 可扩展架构:如何打造一个善变的柔性系统?
04 | 可扩展架构案例(一):电商平台架构是如何演变的?
05 | 可扩展架构案例(二):App服务端架构是如何升级的?
架构实战案例解析
登录|注册

05 | 可扩展架构案例(二):App服务端架构是如何升级的?

王庆友 2020-03-02
你好,我是王庆友。
上一讲,我与你介绍了电商平台从单体架构到微服务架构的演变过程。那么今天,我会通过一个 1 号店 App 服务端架构改造的例子,来具体说明架构的演变过程,让你能更深入地理解架构演变背后的原因。
好,先让时间拨回到 2012 年,当时随着智能设备的普及和移动互联网的发展,移动端逐渐成为用户的新入口,各个电商平台都开始聚焦移动端 App。这个时候,1 号店也开始试水移动端购物,从那时起,1 号店 App 的服务端架构一共经历了三个版本的变化。
接下来,我就为你具体介绍 App 服务端架构变化的过程以及原因。

V1.0 架构

我先说说最开始的 1.0 版本。当时的情况是,App 前端的 iOS 和 Android 开发团队是外包出去的,而 App 的服务端是由 1 号店内部一个小型的移动团队负责的,这个团队主要负责提供 App 前端需要的各个接口,接口使用的通信协议是 HTTP+JSON。
具体的架构如下图所示:
这个架构比较简单,App 的服务端整体上就一个应用,由移动团队来维护所有对外接口,服务端内部有很多 Jar 包,比如商品搜索、商品详情、购物车等等,这些 Jar 包包含了各个业务线的业务逻辑及数据库访问,它们由各个业务线的开发者负责提供。
你可以看到,这个 1.0 版本的服务端,实际上就是一个单体应用,只是对外的接口和内部 Jar 包分别由不同的团队来提供,这个架构的优点和缺点同样都非常明显。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《架构实战案例解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • 探索无止境 置顶
    老师您好,在V3.0架构中,通用层里面的协议适配,安全,日志,监控这几块具体做什么,怎么落地,能否提供一个推荐的方案?

    作者回复: 安全比如对进来的请求进行签名校验,请求和响应里有sign字段,确保它的值和其他业务请求参数匹配。
    日志比如在网关里记录request/response到ELK。
    监控比如用APM工具跟踪请求,这里作为链路监控的开始。
    协议适配比如对外输出时,使用protobuf提高传输效率。
    这些功能和业务无关,并且相互独立的,非常合适作为拦截器实现,比如spring cloud 的zuul网关可以提供很好的落地。

    2020-03-02
  • 川杰
    老师,问个小问题:为什么您在画图的时候,要把 无线接口 和 WEB 分开,他们在细节上有什么区别吗?我理解都是一个webApi啊?
    2020-03-02
  • Din
    老师好!
    1. 在3.0架构中,网关中的适配层是不是和BFF层职责一样?
    2. 适配器是 Jar 包的形式,由各个业务线研发团队提供。会不会存在一个聚合服务不能落在某一个业务应用服务中,最终还是需要多一层聚合服务?
    3. 为什么PC端没有网关层呢?
    2020-03-02
  • 虚竹
    老师好,今天的课程讲的非常好,帮我理清了脉络,感谢,我是一名一线的业务开发人员,目前我们这边类似老师讲的V3.0架构,请教下,
    1.如果进一步发展,web端使用前后端分离了,跟APP端一样http+json,那对于各业务线来说,是又从3个服务变成1个服务了吗?(当然1个业务服务内部可能是有很多业务侧微服务组成的)
    2.业务线提供的api,除了给网关使用(外),还有供其他业务线调用的(内),以及前后端分离后自己的前端APi(自己),每部分会有各自的适配逻辑,但也都共享底层业务逻辑,在实际架构中,这部分不同的api
    是放在同一个服务中通过包或类区分还是拆分为几个服务更合适?
    3.进一步的发展应该就是微服务,中台了,老师还会继续实际演化的实例的吧?非常期待~
    2020-03-02
  • Frank
    PC端不需要通用,路由,适配层吗?
    2020-03-02
收起评论
5
返回
顶部