看dubbo文档的时候,看到里面讲“垂直架构”一直不明白什么意思。遂百度之,我理解垂直结构指的就是分层,就是将一个业务拆分为几部分,而不是一条线下来。
单一应用
所有的业务都写在一个工程里面,一个项目就搞定了所以的事情
优点:(1)简单,上手快
不足:(1)业务直接耦合太强,比如,如果其中某一个地方有问题的话,会拖垮整个应用,这就会影响到其它本来正常的业务。另外一个是,一个很小的改动都会导致整个项目要重新发布
分布式应用
将一个大的业务拆分成不同的小的模块,它们共同协作来完成某个任务(业务),这些模块是分离的并不在一起,然后通过远程调用的方式进行通信,外部看起来是一个整体,内部其实不然,我觉得也可以理解为RPC应用
优点:(1)在一定程度上解耦
(2)性能相比有提升,扩展性更快
不足:(1)随着这种小的模块越来越多,模块之间的调用关系会越来越复杂,不便于维护和管理
(2)远程过程调用会使得代码量会急剧增加
微服务应用
微服务应用突出的特点在于服务治理,每个服务独立部署运行
优点:(1)结构清晰,职责单一,高内聚,
参考:https://yq.aliyun.com/articles/224465?spm=5176.8661223.0.0.lMvjkq
http://cloud.51cto.com/art/201510/493867.htm