SpringCloud-nacos,sentinel,Seata技术整理

  • nacos:一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心

Nacos = Eureka+Config+Bus(替代Eureka做服务注册中心,替代Config做服务配置中心)

SpringCloud-nacos,sentinel,Seata技术整理_第1张图片

通过配置@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;
    }
}
 
 

SpringCloud-nacos,sentinel,Seata技术整理_第2张图片

 

程序启动优先读取bootstrap文件,再读取application文件

Nacos集群和持久化配置:Linux版Nacos+MySQL生产环境配置,通过配置mysql连接,可以把配置信息持久化到mysql中

  • Sentinel 解决服务雪崩,服务降级,服务熔断,服务限流

  1. 服务雪崩 :服务雪崩效应是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象
  2. 服务降级:服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提示,fallback。触发服务降级的情况:程序运行异常,超时,服务熔断触发服务降级,线程池/信号量打满也会导致服务降级

SpringCloud-nacos,sentinel,Seata技术整理_第3张图片

降级策略实战:RT,异常比例,异常数

3.服务熔断:类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示。             服务的降级->进而熔断->恢复调用链路

sentinel整合ribbon+openFeign+fallback

4.服务限流:秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行

@SentinelResource

按资源名称限流

按照Url地址限流

Seata处理分布式事务

@GlobalTransactional

TM开启分布式事务(TM向TC注册全局事务记录)

换业务场景,编排数据库,服务等事务内资源(RM向TC汇报资源准备状态)

TM结束分布式事务,事务一阶段结束(TM通知TC提交/回滚分布式事务)

TC汇总事务信息,决定分布式事务是提交还是回滚

TC通知所有RM提交/回滚资源,事务二阶段结束。

你可能感兴趣的:(java,spring,分布式)