互联网分层架构演进

如果我们仔细思考会发现,不管是跨进程的分层架构,还是进程内的MVC分层,都是一个“数据移动”,然后“被处理”和“被呈现”的过程,归根结底一句话:互联网分层架构,是一个数据移动,处理,呈现的过程,其中数据移动是整个过程的核心。

弄清楚这个原则与方法,再加上一些经验积累,就能回答网友经常在评论中提出的这些问题了:

是否需要引入DAO层,什么时机引入

是否需要服务化,什么时机服务化

是否需要抽取通用中台业务,什么时机抽取

是否需要前后端分离,什么时机分离

当业务越来越复杂,垂直拆分的系统越来越多,数据库实施了水平切分,数据层实施了缓存加速之后,底层数据获取复杂性成为通用痛点的时候,就应该抽象出数据服务层,简化数据获取过程,提高数据获取效率,向上游屏蔽底层的复杂性。

互联网分层架构是一个很有意思的问题,服务化的引入,并不是越早越好:

请求处理时间可能会增加

运维可能会更加复杂

定位问题可能会更加麻烦

千万别鲁莽的在“微服务”大流之下,草率的进行微服务改造,看似“高大上架构”的背后,隐藏着更多并未接触过的“大坑”。还是那句话,架构和业务的特点和阶段有关:一切脱离业务的架构设计,都是耍流氓。

作者 沈剑

•“架构师之路”作者,深夜写写技术文章

•百度-高级工程师

•58同城-高级架构师,技术委员会主席,技术学院优秀讲师

•58到家-高级技术总监,技术委员会主席

•58速运-CTO

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180118B04Z2D00?refer=cp_1026

扫码关注云+社区