简述微服务高可用之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回滚事务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/448616.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构与算法】链表(上)

记录自己所学&#xff0c;无详细讲解 无头单链表实现 1.项目目录文件 2.头文件 Slist.h #include <stdio.h> #include <assert.h> #include <stdlib.h> struct Slist {int data;struct Slist* next; }; typedef struct Slist Slist; //初始化 void SlistI…

【C#】WPF MVVM 简单示例代码

1. 目录结构 2. 代码 2.1 DelegateCommand.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input;namespace MVVSSample.Commands {class DelegateCommand : ICommand{publ…

信息安全工程师(52)网络安全审计系统组成与类型

前言 网络安全审计系统是一种用于监控、分析和报告网络环境中安全事件的系统。其组成与类型均体现了对网络安全性的全面考虑和细致划分。 一、网络安全审计系统的组成 网络安全审计系统一般由以下几个关键部分组成&#xff1a; 审计数据采集系统&#xff1a;负责采集被审计系统…

shell案例之一键部署kafka

Shell案例之一键部署kafka 一、案例问题 &#xff08;1&#xff09;Kafka是用Java编写的&#xff0c;需要配置jdk环境变量 &#xff08;2&#xff09;Kafka配置文件数目多 &#xff08;3&#xff09;命令安装繁琐 二、案例分析&#xff1a; &#xff08;1&#xff09;检查…

elementUI,设置日期,只能选择过去的和今天的日期

在 el-date-picker 组件中加&#xff1a;:picker-options"pickerOptions" <el-form-item label"票据生成日期&#xff1a;"> <el-date-picker v-model"date1" type"daterange" range-separator"至" value-format&…

chatgpt搭建大模型技术知识解读与总结

搭建大型语言模型&#xff08;如ChatGPT&#xff09;的技术知识涉及多个领域&#xff0c;包括机器学习、自然语言处理&#xff08;NLP&#xff09;、深度学习、数据处理等。下面是一些关键概念和步骤的总结&#xff1a; ### 1. **基础知识** #### a. **自然语言处理 (NLP)** …

基于Qt/QChart实现折线图和散点图的绘制示例程序解析

1. 项目简介 本文讲解的是一个基于Qt框架的QChart模块实现的折线图与散点图结合的绘制程序。程序通过自定义类LineChartWithGradient实现折线图、散点图以及带有渐变填充的区域图&#xff0c;最终形成一个美观的数据可视化效果。 2. 类构造函数 LineChartWithGradient::LineC…

天锐绿盾VS Ping32数据安全新选择,用户体验分享

随着网络威胁日益严重&#xff0c;如何保护个人和企业的网络安全成为了一个迫在眉睫的问题。天锐绿盾和Ping32作为市场上两款备受欢迎的网络安全软件&#xff0c;各自拥有独特的特点和功能。本文将对这两款软件进行深入的使用体验分享&#xff0c;帮助用户做出最佳选择。 防护性…

Docker 拉取镜像时配置可用镜像源(包含国内可用镜像源)

文章目录 写在前面一、Docker 官方源二、更换Docker 国内可用镜像源 &#xff08;推荐使用&#xff09;参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04&#xff0c;docker-27.3.1 一、Docker 官方源 打开 /etc/docker/daemon.json文件&#xff1a; sudo gedit …

3.Three.js程序基本框架结构和API说明

Three.js程序基本框架结构和API说明 1.基本框架结构代码 一个基本的Three.js程序&#xff0c;基本都需要设置场景、渲染器、相机、灯光等等通用操作&#xff0c;因而我们可以把Three.js基本程序框架进行整理&#xff0c;如下。其中&#xff0c;我们可以用Three.js提供的Orbit…

JAVA 中的克隆对象

克隆对象就是复制一个一模一样的对象&#xff0c;但是复制出来的对象和原对象不是同一个对象&#xff0c;是两个对象&#xff0c;只不过复制过来的对象和原对象除了内存地址之外&#xff0c;其它的属性一模一样。 在超类 Object 中有一个 clone() 方法&#xff1a; protected…

NC 单据模板自定义项 设置参照(自定义参照)

NC 单据模板自定义项 设置参照&#xff08;自定义参照&#xff09; 如图下图&#xff0c;NC 单据模板自定义项 设置参照&#xff1a; 1、选择需要设置参照的自定义字段&#xff0c;选择高级属性页签&#xff0c;在类型设置中&#xff0c;数据类型选择参照信息&#xff0c;即bd…

Ubuntu-Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题

Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题 一、问题描述二、原因分析三、解决办法 一、问题描述 Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题 zhyzhy-HP:~/Sources/mpv-examples/libmpv/qt$ make g -c -pipe -g -Wall -Wextra -D_REENTRANT -fPIC -DQT_WIDGET…

python 基础笔记(其实有点内容的)

print(math.gamma(n)) # 求 (n-1) 的阶乘 数值, 数值计算 format(50, “b”) bin(50)[2:]&#xff0c; 这个“b” 就代表的是 binary format(14, ‘b’) ------> ‘1110’ 去除 0b 去掉前导零 str(000001) # 只适合python2.x ‘1’ “00000001”.lstrip(“0”) # python3…

图论day62|拓扑排序理论基础、117.软件构建(卡码网)、最短路径之dijkstra理论基、47.参加科学大会(卡码网 第六期模拟笔试)

图论day62|拓扑排序理论基础、117.软件构建&#xff08;卡码网&#xff09;、最短路径之dijkstra理论基、47.参加科学大会&#xff08;卡码网 第六期模拟笔试&#xff09; 拓扑排序理论基础117.软件构建&#xff08;卡码网&#xff09;最短路径之dijkstra理论基础47.参加科学大…

AI控制工业机器人入门教程

简介 AI控制的工业机器人正在改变现代制造业的面貌。与传统的编程控制不同&#xff0c;AI使机器人能够通过感知环境、自主决策和学习不断优化自身的操作。这篇教程将介绍实现AI控制工业机器人的必要知识和技能&#xff0c;帮助读者从基础开始构建起AI控制机器人的理解和能力。…

OceanBase + DolphinScheduler,搭建分布式大数据调度平台的实践

本文整理自白鲸开源联合创始人&#xff0c;Apache DolphinScheduler PMC Chair&#xff0c;Apache Foundation Member 代立冬的演讲。主要介绍了DolphinScheduler及其架构、DolphinScheduler与OceanBase 的联合大数据方案。 DolphinScheduler是什么&#xff1f; Apache Dolphi…

【论文速看】DL最新进展20241016-低光增强、自动驾驶、图像分割、Diffusion

目录 【低光增强】【自动驾驶】【图像分割】【Diffusion】 【低光增强】 [ACCV 2024] LoLI-Street: Benchmarking Low-Light Image Enhancement and Beyond 论文链接&#xff1a;https://arxiv.org/pdf/2410.09831 代码链接&#xff1a;https://github.com/tanvirnwu/TriFuse …

Pytest+selenium UI自动化测试实战实例

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 今天来说说pytest吧&#xff0c;经过几周的时间学习&#xff0c;有收获也有疑惑&#xff0c;总之最后还是搞个小项目出来证明自己的努力不没有白费 环境准备 1 …

【MySQL】表的查询操作——SELECT

目录 1.select的基本使用 1.1.查询所有列 1.2.查询特定列 1.3.DISTINCT关键字的使用——查询不重复的年级 1.4.带条件的查询 1.5.排序查询结果 1.6.LIMIT的使用——限制返回的行数 1.7.组合使用 WHERE、ORDER BY 和 LIMIT 1.8.查询字段为表达式 1.9.为查询结果指定别名…