微服务架构深度解析:你知道微服务的主要特性有哪些吗?

微服务主要特性

粒度更细的服务

微服务架构相比SOA分布式架构强调按业务边界做细粒度的服务拆分。SOA架构使用粗粒度的服务模式来封装业务和技术能力,减少服务交互,但同时带来了业务耦合的复杂性。而微服务架构本质上是一个做减法的架构,将规模庞大的单体系统进行服务拆分,每个细粒度服务的功能和职责单一。当然,服务的粒度并不是拆得越细越好,如果拆分不当,还会造成服务频繁地跨网络操作,增加系统的整体复杂性。

首先,微服务粒度的划分要求工程师充分理解和洞察业务领域的边界,保证你所拆分的服务是自包含的。所谓“自包含”就是说你的服务是可以独立部署、独立演进的,你的服务可以自主地完成某个特定的、单一的功能。

其次,细粒度服务应该同时具备高内聚和低耦合两个特征。高内聚要求将系统中相关的元素和行为聚集在一起,把不相关的元素和行为放在别处;低耦合是指降低微服务之间的相互依赖程度和相互作用关系,如果服务之间存在紧密联系,说明它们的耦合度比较高,最好不要做拆分操作,而应该做聚合操作,这样可以使信息的传递和协作比拆分成独立的服务更加简单可控。

另外,细粒度服务应该尽量做到独立。这一特性也适用于单一职责 原 则 : SRP ( Single Responsibility Principle ) , 该 原 则 由Robert C.Martin提出。从面向对象设计的角度看,所谓职责是指一个类(Class)变化的原因。如果一个类有多个改变动机,那么这个类就具有多个职责,而单一职责原则就是指一个类或者模块应该有且只有一个改变原因。

下面总结一下粒度更细的服务带来的好处:

● 粒度更细的服务使每一个服务专注做好一件事情。每个服务完成一个单一任务,在功能不变的情况下,应用被拆分为多个可管理的服务,很好地解决了系统的复杂性问题。

● 粒度更细的服务有助于新人对工程的学习。对于一个大型的、生命周期比较长的项目,人员的流动和组织变化是经常发生的事情,而庞大的单体架构容易使模块之间相互耦合,功能界限模糊,同时增加了新人的学习成本。

● 粒度更细的服务有利于部署。对于大型单体项目,模块之间往往存在紧密的代码耦合,一个子模块的编译错误往往会导致整个应用无法构建成功,而细粒度的服务可以通过独立工程解决“牵一发而动全身”的问题。

● 粒度更细的服务具备更好的复用性。在软件领域,我们一直提倡使用复用的方式构建系统,粒度更细的服务通过独立的部署,通过声明语言无关、平台无关的标准接口&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值