为了应对日益复杂的业务场景,根据业务场景拆分整个应用是一种合理的选择。这样,整个业务分成不同的产品线,如交易系统可将首页、卖家、卖家、订单等拆分成不同的产品线,分归不同的业务团队负责。拆分后,每个产品线维护的应用独立部署维护,各子应用之间通过消息队列等进行数据通信。随着业务拆分越来越小,存储系统越来越庞大。为避免所有应用都和数据库连接,导致数据库连接池资源不足,针对可复用的业务连接数据库,提供公用业务服务。针对其他公共业务,也抽取相关服务。如认证鉴权服务、NoSQL数据库读写服务、缓存读写服务等等。
SOA
在分布式架构的演进中,SOA(Service Oriented Architecture,面向服务的架构)获得一部分技术厂商的青睐。SOA 是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。 SOA 并不是一个新鲜事物,而只是面向对象模型的一种替代。虽然基于 SOA 的系统并不排除使用 OOD 来构建单个服务,但是其整体设计却是面向服务的。由于 SOA 考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。一个经典的SOA架构的部署图如下: