如果你经历过快速迭代业务,经历过用户量不断上涨,经历过访问并发越来越大,你一定会遇到以下系统问题:
遇到上述痛点,经常使用“前台与后台分离”的架构优化方案。
业务早期,最常见的场景是什么?
虚拟一个类似于“AJK”租房买房的业务场景,这个业务的数据有两大来源:
这个业务对应的系统有两类使用者:
在创业公司,为了快速迭代,系统架构如上:
上述架构方案,存在什么问题?
系统两类数据源,一类是用户发布的数据,一类是爬虫抓取的数据,两类数据的特点不一样:
如果将自有数据和抓取数据耦合在一个库里,经常出现的情况是:
如果经历过这个过程,其中的痛不欲生,是谁都不愿意再次回忆起的。
耦合的根本原因,是数据层的耦合。
应该怎么优化?
优化思路:前台展现数据,后台抓取数据分离,解耦。
如上图所示:
如此这般:
有些朋友说,自己使用的是“微服务架构”,数据库为服务私有,不存在数据耦合。你以为微服务架构,就没有问题了吗?
微服务架构,服务耦合的新问题是什么?
上面解决了不同数据源写入的耦合问题,再来看看前台与后台用户访问的耦合问题。
用户侧,前台访问的特点是:
运营侧,后台访问的特点是:
前台和后台的模式与访问需求都不一样,但是,如果前台与后台混用同一套服务和结构化数据,会导致:
耦合的根本原因,是服务层的耦合。
应该怎么优化?
优化思路:冗余数据,前台与后台服务与数据分离,解耦。
如上图所示:
小结