-
nacos:一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心
Nacos = Eureka+Config+Bus(替代Eureka做服务注册中心,替代Config做服务配置中心)
通过配置@RefreshScope可以实现配置自动更新
package com.atguigu.springcloud.alibaba.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
程序启动优先读取bootstrap文件,再读取application文件
Nacos集群和持久化配置:Linux版Nacos+MySQL生产环境配置,通过配置mysql连接,可以把配置信息持久化到mysql中
-
Sentinel 解决服务雪崩,服务降级,服务熔断,服务限流
- 服务雪崩 :服务雪崩效应是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象
- 服务降级:服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提示,fallback。触发服务降级的情况:程序运行异常,超时,服务熔断触发服务降级,线程池/信号量打满也会导致服务降级
降级策略实战:RT,异常比例,异常数
3.服务熔断:类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示。 服务的降级->进而熔断->恢复调用链路
sentinel整合ribbon+openFeign+fallback
4.服务限流:秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行
@SentinelResource
按资源名称限流
按照Url地址限流
Seata处理分布式事务
@GlobalTransactional
TM开启分布式事务(TM向TC注册全局事务记录)
换业务场景,编排数据库,服务等事务内资源(RM向TC汇报资源准备状态)
TM结束分布式事务,事务一阶段结束(TM通知TC提交/回滚分布式事务)
TC汇总事务信息,决定分布式事务是提交还是回滚
TC通知所有RM提交/回滚资源,事务二阶段结束。