SOA 架构与微服务

转载:https://blog.csdn.net/GitChat/article/details/80999454

单体架构

单体架构是最简单的软件架构,常用于传统软件开发和传统web应用。传统web应用,一般将所有功能模块都打包(jar, war)在一个web容器中(JBoss、Tomcate)部署,运行。即使是小的需求,也需要将所有应用全部部署一般,增加了运维的复杂度。

SOA

当单体架构很难推进业务的开发需求时,很多公司会进行单体架构的拆分。拆分的方式有水平拆分和垂直拆分。垂直拆分是将应用拆分成相互耦合的独立应用,让应用可以独立部署,有独立的团队维护。水平拆分是把一些公用的,会被很多上层服务调用的模块拆分出去,形成一个共享的基础服务,这样的拆分可以对一些应用的性能瓶颈进行单独的优化和运维管理,也在一定程度上防止了垂直拆分的重复造轮子。
SOA 也叫面向服务的架构,从单体架构到SOA的过程,需要结合业务进行垂直拆分和水平拆分。SOA强调用统一的协议进行服务间的通信,服务运行在独立的硬件平台,但是需要通过统一的协议接口进行协作,也即将应用系统服务化。

微服务与SOA

微服务也是一种服务化,不过与SOA有所差别。
松耦合:每个微服务内部都可以使用 DDD(领域驱动设计)的思想进行设计领域模型,服务间尽量减少同步的调用,多使用消息的方式让服务间的领域事件来进行解耦。
轻量级协议:
高度自治和持续集成:

*

博客的后面部分不是很明白。

*

猜你喜欢

转载自blog.csdn.net/secure2/article/details/81023255