微服务架构和SOA架构

简介

微服务架构(Microservice Architecture)通过把一个大型的应用拆分成一系列分布式组件,进而达到降低系统耦合性的目的。

微服务是从一开始的单体架构到SOA架构,然后发展到微服务架构。

单体架构

单体架构(Monolithic Architecture)是一种传统的架构模式,它将所有的功能模块实现在一个应用程序中。

单体式开发架构图

在这里插入图片描述

优缺点:

易于开发,我们目前所使用的IDE都是为单个应用的开发而设计的,在本地可启动整个系统,因此也易于测试。可直接将整个应用打包成war包部署到运行环境中,因此也易于部署

但是,当应用变大变复杂之后,这些优点也相应变成了缺点。关于开发,应用的复杂会使代码量变得巨大,进而导致IDE速度变慢,降低了开发的效率。关于测试,应用程序的笨重会导致编译时间变长,web容器的启动时间变长,进而导致测试时间变长,测试效率变慢。关于部署,由于单体模式是所有的功能都在一个应用中实现,这导致要完成对某一个小部分的修改,必须重新部署整个应用,会带来一些可能的问题,应用程序的变大同时也会拖慢部署速度,给频繁部署带来了困难。另外,随着应用的变大,开发团队可能会有新的成员进入,代码的复杂和庞大将不利于新开发者迅速理解和掌握整个应用的结构,很容易打击开发者信心,影响情绪,降低效率。同时给应用程序的扩展也带来了困难

SOA架构

SOA(Service-Oriented Architecture),是构造应用程序的方法,也就是所谓的面向服务的架构。这种架构方法基于组件,它是集成多个粗粒度组件的一种机制,在这个机制中,每个组件完成自己的一块完整的业务逻辑。

SOA架构图

在这里插入图片描述

优缺点

SOA实际上是一种流程分解,将应用的业务流程分解为服务,每个服务对应着流程中的一个步骤,可使用不同的编程语言,各个服务之间通过数据总线进行交互。这种通过数据总线进行统一调度的方式,降低了服务之间的依赖,使应用程序有了更好的可维护性和扩展性,降低的开发的难度。但这种模式需要对业务流程有一个清晰的计划,也在一定程度上提高了系统的复杂性,降低了系统的性能

微服务架构

微服务架构和SOA有着一些共同点,两者都是以服务为中心的架构,都属于分布式组件的系统结构。

微服务和SOA的简单区别:
与SOA相比,微服务架构的组件粒度更细,SOA中的组件是大块的业务逻辑,而微服务是小块业务逻辑或者是单独的任务。同时,SOA的组件一般是松耦合的,但这不是硬性要求,而微服务的组件总是松耦合的

微服务开发架构图

在这里插入图片描述

优点

第一,微服务架构将大的应用分解为一组服务,每个服务都专注于自己的业务功能,定义了明确的边界,使系统复杂性问题得以解决
第二,易于开发,各个服务的开发者只需对外提供符合要求的API即可,开发服务可自由选择最合适的开发语言和开发技术等。
第三,易于部署,各个微服务课独立部署,提高了部署速度,可以快速更新版本。
第四,易于扩展和维护,微服务架构的各个服务都有很好的扩展性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值