分布式的系统是指一组在同一个网络下的多个服务,通过网络协调和通信。对外形如一个整体,这就降低了单个服务器的负担,使整体性能得到了提神,多个服务器是项目更稳定。通过spring-cloud这个工具集可以更快完成开发。nacos 服务发现 配置管理,sentinel 服务容错,seata 分布式事务,gateway 服务网关,openfeign 服务调用,ribbon 负载均衡
服务发现是找到服务实例地址的过程,配置管理是实例相关的配置。1,生产者启动服务时想注册表上报本机ip和端口,2.消费者拉取服务列表,3.注册表健康监测生产者,4.生产者变更后发出通知,5.消费者重新拉取服务列表。
服务容错:网络是不可靠的,所以会有各种各样的问题,服务提供者不可用,重试加大流量,一旦出问题,可能会出现服务雪崩,这时候就要有个机制来限制它,让它在小范围里。常用的方式有:超时,限流,舱壁模式。
分布式事务:由于分为多个服务,每个服务都有自己的数据库,那么在一个步骤里出错了,事务要回滚,然而靠普通的回滚只能回滚自己的数据库,而不能回滚其他服务的数据库,这时候需要一个中间方来协调,于是就有了事务协调者:TC,事务发起者:TM,事务参与者:RM。分为两个阶段,预备阶段和提交阶段,预备阶段:TC通知所有分支事务执行业务操作,所有分支事务处理完成后告知TC。提交阶段:TC如果收到所有的分支事务提交都是完成,则全局事务提交,通知所有分支事务提交,反之全部回滚。常见方案:XA协议&#x