Spring Cloud与微服务构建学习笔记之微服务的优势与不足(二)

一、微服务的优势
(1)可以将复杂的业务拆分成若干个小业务,对应若干个服务,服务边界明确,可以将复杂的问题简单化,同时微服务的代码也是按业务拆分,因此可读性和可扩展性更好。
(2)由于微服务系统是分布式系统,服务与服务之间没有耦合,具有很强的横向扩展能力,同时,随着用户数量的增加,并发量增加,也可以将微服务集群化部署, 从而增加系统的负载能力。
(3)微服务之间通过HTTP网络协议通信,单个服务内部高度耦合,服务与服务之间独立,无耦合,因为微服务可以使用不同的语言进行开发。
(4)相对单体应用,重写微服务更简单,影响范围更小。
(5)微服务之间部署是独立的,因此,单个微服务的修改和部署对其他微服务没有影响,但是单体架构的系统,即使是简单的修改也需要重新部署和测试整个应用。因此微服务可以节省测试与部署时间。
(6)微服务在CAP理论中采用AP架构,即具有高可用和分区容错的特点。高可用主要体现在7*24小时不间断服务,它要求系统有大量的服务器集群,从而提高了系统的负载能力,另外,分区容错也使服务更加健壮。
二、微服务的不足
(1)微服务的复杂度
微服务是分布式系统,因此服务的构建复杂度高,服务与服务之间通过HTTP协议或消息传递机制通信,因为开发需要选择最佳的通信机制,以及解决网络服务较差时带来的风险。
服务与服务之间有依赖性,有时修改某个基础服务可能需要重启所有服务,并且测试也会变得相对更复杂。
(2)分布式事务
微服务同时满足“一致性”,“可用性”,“分区容错”是一件不可能的事情。即分布式系统无法满足CAP理论。
Consistency:指数据的强一致性。如果写入某个数据成功,之后读取,读到的都是新写入的数据,如果写入失败,之后读取的都不是写入失败的数据。
Availability:指服务的可用性。
Partition-tolerance:指分区容错。
(3)服务的划分
微服务拆分原则:服务可以被更新和替换,因此服务与服务之间无耦合。
(4)服务的部署
微服务系统由数量众多的微服务构成,因此,微服务系统需要对每个服务进行部署、治理、监控、和管理。每个服务有大量的配置,要考虑服务的启动顺序和启动时机。
部署微服务系统,需要开发或运维对微服务系统有足够的控制力,可以使用PaaS服务,使用Docker编排等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值