前面讲的读写分离、分布式存储、数据垂直拆分和水平拆分都是解决数据方面的问题,接下来我们要看看应用方面的变化
随着业务的发展,应用的功能会越来越多,应用也会越来越大,我们需要思考如何不让应用持续变大,这就需要把应用拆开,从一个应用变为两个甚至是多个。
第一种方式
根据业务的特性把应用拆分,在我们的例子中,主要业务功能分三个部分、用户、商品、交易。我们可以把原来的一个应用拆成分别以交易和商品为主的两个应用,对于交易和商品都会有设计使用用户的地方,我们让这两个系统自己完成涉及用户的工作,而类似用户注册、登录等基础的用户工作,可以暂时交给两个系统之一来完成。
我们还可以按照用户注册、用户登录、用户信息维护等再拆分,变成三个系统,不过这样拆分后在不同系统中会有一些相似的代码,比如用户相关的代码,如何能够保障这部分代码的一致以及如何对其他模块提供复用也是需要解决的问题。而且,这样拆分出来的新系统之间没有直接的相互调用