简述微服务高可用之Sentinel、Seate

简述微服务高可用之Sentinel、Seate使用

下文主要讲述使用sentinel,如何降级限流熔断及如何使用seata管理分布式事务

sentinel服务端安装与使用

1、下载

进入https://github.com/alibaba/Sentinel/releases

根据你的需求进行下载对应版本

我这里是JDK17 下载的1.8.8版本,sentinel-dashboard-1.8.8.jar

2、启动服务,需安装java环境

复制代码
java -jar sentinel-dashboard-1.8.8.jar

3、在工程配置文件配置服务端地址。

在cloud:层级下配置sentinel,sentinel的默认端口为8080

复制代码
sentinel:
  transport:
    dashboard: localhost:8080  #配置sentinel服务端
  http-method-specify: true #开启请求方式前缀

4、访问sentinel服务端

此处的用户名和密码都是sentinel

5、进入主界面

在工程中配置了dashboard,接口访问后都会在此显示

6、实时监控

服务的请求情况都会记录,每秒通过多少次,拒绝多少次

7、簇点链路

用于记录每个接口的情况以及管理策略操作,可以对某接口进行限流、熔断、热点、授权等操作

(1)新增流控规则、

针对某接口进行流控,可选择QPS(每秒请求数)和并发线程数进行限制,选择QPS当每秒超过配置数会限制操作,提示Blocked by Sentinel (flow limiting)1秒后可重新访问

(2)新增熔断规则

熔断策略有三种慢调用模式,当调用时间达到最大RT,且比例阈值大于等于配置的阈值,视为该链路不可用。异常比例,当调用次数异常与总次数比例阈值>=配置阈值即熔断;异常数,当异常请求个数到达配置阈值。熔断时长表示不可用时间,在熔断时长后再次请求调用。采用了滑动时间窗算法。

滑动窗口算法是对固定窗口算法的改进,它将时间窗口分为多个小周期,每个小周期都有自己的计数器。随着时间的滑动,过期的小周期数据被删除,这样可以更精确地控制流量。

详细限流算法见https://zhuanlan.zhihu.com/p/689922080

(3)新增热点数据规则

对经常访问的数据进行限流。参数索引此处的0表示方法中的第一个参数,意为以哪个参数为索引。详情见https://blog.csdn.net/zhiqiang_cao/article/details/142937510

(4)新增权限规则

用于拦截那些允许访问、那些禁止访问。

详情参见https://blog.csdn.net/weixin_53041251/article/details/129651977

Seata 分布式事务处理

用于在微服务/分布式中保持数据的一致性

官方文档:https://seata.apache.org/zh-cn/docs/user/quickstart/

安装服务端:https://blog.csdn.net/2301_76862031/article/details/141499249

1、引入依赖

复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>

2、在方法上增加@GlobalTransactional,此处为示例代码具体逻辑实现请自行实现

复制代码
@Transactional
@GlobalTransactional
public String createOrder(String id){
    System.out.println("创建订单成功");
    inventoryService.reduceNum(id);
    return "";
}

分布式事务处理分为两阶段,第一阶段各自服务各自进行事务提交。第二阶段seata收集提交结果,若其中一个失败,则通过undolog回滚事务。

相关推荐
Wgllss8 小时前
Kotlin 享元设计模式详解 和对象池及在内存优化中的几种案例和应用场景
android·架构·android jetpack
程序员不迷路12 小时前
微服务学习
微服务·架构
fanly1112 小时前
使用surging 常见的几个问题
微服务·surging
Sadsvit12 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
得物技术13 小时前
营销会场预览直通车实践|得物技术
后端·架构·测试
君不见,青丝成雪14 小时前
浅看架构理论(二)
大数据·架构
兮漫天15 小时前
bun + vite7 的结合,孕育的 Robot Admin 【靓仔出道】(十五)
前端·vue.js·架构
朱皮皮呀15 小时前
微服务流量分发核心:Spring Cloud 负载均衡解析
spring cloud·微服务·负载均衡