移动端API架构 统一Proxy还是各自为政?

移动端API架构 统一Proxy还是各自为政? - 大熊先生|互联网后端技术 - 博客园http://www.cnblogs.com/Creator/p/5506095.html
我经历过几家公司,有把所有的service放到一个域名下的,也有按业务的不同来拆分为不同域名服务的
api.baidu.com/msg
api.baidu.com/user
api.baidu.com/search

也有如:
msg.baidu.com
user.baidu.com
search.baidu.com

对应内部的架构也会是两个样子

Paste_Image.png

一般的初创公司,甚至到中型互联网技术公司,很多人都在用分拆域名的方式来分拆业务,这样做好处是什么?
一般在一家创业公司驱使按域名分业务分拆后端API始于团队和人员的发展,他们期望各业务负责人只需要关注自己的业务,业务间没有关联关系,即便在最终产品上各业务会有先后依赖关系,如消息服务(msg service)依赖user service,也都是整体由客户端来串逻辑,研发msg service的同学与user service的同学可以不用交流或者少交流,已到达各业务开发团队齐头并进的效果。出了问题呢,也能很快的定位是哪个api的service挂了,每个团队维护好自己的服务, 干好自己的事情.
在这个阶段的公司,这也是个不错的方案能够让多个团队齐头并进.

但是对于大的互联网公司,或者有技术追求的技术公司,这并不是最理想的方案,为什么呢?
我们来看看按域名分拆业务带来的问题:

  1. 流量监控等方案需要在各个业务做
  1. 安全性, 防攻击等相关问题需要各个业务团队完成
  2. 不利于统一管理,需要给每个业务配备对应的运维人员(绝大部分这种架构的公司op也是这么配备的)
  3. 扩容 缩容 熔断 等高可用相关的基础方案难复用

这里面最重要的是流量监控和容量规划,在同一的proxy层做监控能够让人非常快速的知道系统故障时问题在哪,哪个服务的耗时增加了,哪个服务开始出现500了. 如终端报bug消息出不来了,到底是msg service还是user service的问题,一目了然;同时统一的扩容 缩容以及服务降级的联动,都好做了,运维工程师的幸福生活由此展开.
当然,这并不是唯一的方式,使用分拆域名然后把各个监控数据汇集到一块也能做,但是成本变高了.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容