介绍前言:
一款优秀的产品,不仅在产品设计上实现MVC,在底层架构上同样也是MVC的设计。本文将从微服务架构—业务架构设计的理解出发,去提高产品人员与架构师/技术工程师之间的协作。
1、定义
微服务架构是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
2、架构
在介绍微服务架构为水平+垂直分层架构的设计,而在介绍之前,先介绍一下水平分层架构(经典三层架构为例)和垂直分层架构(SOA架构)。
(1)水平分层架构
水平分层架构水平分层为水平拆分,目的在于对功能的拆分,实现方式为分表,以典型的水平分层架构如图所示。
除此之外,水平架构还分为异步架构和同步架构,在此同步水平分层通过插入MQ层可变成异步架构。MQ层的好处可以提升吞吐量即存储量,实现异步机制。
(2)垂直分层架构
垂直分层为垂直拆分,目的在于对业务服务的拆分,实现方式即为分库,代表架构有SOA架构,如下图所示。
SOA架构具有多个独立服务,每个服务还是Monoliths(单体架构),并依赖ESB进行交互。
(3)水平+垂直分层架构—微服务架构
微服务架构为水平拆分+垂直拆分,目的在于即进行功能拆分又进行业务拆分,其中水平拆分为网关层、业务逻辑层、数据访问层、持久化层,而垂直拆分为多个业务逻辑层,多个数据访问层,多个DB/Cache。
微服务架构能很好的实现项目的快速迭代和持续交付,这使之成为目前的主流的架构之一。
3、设计方法
产品的架构可通过以上11种方式进行优化设计,每种设计手段方法都很复杂,这里将不进行展开介绍了。
4、小结
本文通过浅层介绍了架构设计的概念以及方法手段,分享了近期学习心得,如有更好的建议,欢迎交流分享。