SpringCloud(三)Sentinel、Seata、多级缓存

文章目录

  • Sentinel
    • 雪崩问题
    • Sentinel与Hystrix
    • sentinel使用案例
    • 限流规则
      • 流控模式
      • 流控效果
      • 热点参数限流
    • 隔离和降级
      • Feign整合Sentinel
      • 线程隔离
      • 熔断降级
    • 授权规则与规则持续化
      • 自定义异常结果
      • 规则管理模式
  • Seata
    • 分布式事务问题
    • 理论基础
      • CAP定理
      • BASE理论
    • Seata架构
    • 部署TC服务
    • 微服务集成Seata
    • Seata的四种模式
      • XA - 强一致性

Sentinel

雪崩问题

微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Sentinel与Hystrix

在这里插入图片描述

sentinel使用案例

sentinel官网
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
访问微服务任意端点,即可触发sentinel监控:
在这里插入图片描述

限流规则

在这里插入图片描述
在这里插入图片描述

流控模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在service层方法添加@SentinelResource注解
在这里插入图片描述
在这里插入图片描述
对来源于query入口的请求限流。
在这里插入图片描述

流控效果

在这里插入图片描述
在这里插入图片描述

热点参数限流

在这里插入图片描述
在这里插入图片描述

隔离和降级

在这里插入图片描述

Feign整合Sentinel

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线程隔离

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

熔断降级

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

授权规则与规则持续化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自定义异常结果

在这里插入图片描述
在这里插入图片描述

规则管理模式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Seata

分布式事务问题

在这里插入图片描述
在这里插入图片描述

理论基础

CAP定理

CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。

在这里插入图片描述

CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个:

C:一致性(Consistency) : 所有节点访问同一份最新的数据副本
A:可用性(Availability): 非故障的节点在合理的时间内返回合理的响应(不是错误或者超时的响应)。
P:分区容错性(Partition Tolerance) : 分布式系统出现网络分区的时候,仍然能够对外提供服务。

在这里插入图片描述

由于当前的网络服务,网络故障是不可避免的,那么在保证分区容错性(P, Partition Tolerance)的前提下,可用性(A,Avaliability)和一致性(C, Consistency)就只能保证一个,因为你要保证可用,在分区的情况下,发生网络故障一定无法保证一致性,在保证一致性的情况下,就只能把网络故障断开的分区的机器停用,那这就违背了可用性。

CAP理论告诉我们,在保证P的前提下,只能出现CP或AP的架构

在这里插入图片描述

BASE理论

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Seata架构

  • TC(Transaction Coordinator)事务协调者:维护全局和分支事务状态,协调全局事务提交或者回滚
  • TM(Transaction Manager)事务管理器:定义全局事务的范围,提交或者回滚全局事务。
  • RM(Resource Manager)资源管理器:管理分支事务处理的资源,注册分支事务并报告分支事务的状态给TC,驱动分支事务提交或回滚。

在这里插入图片描述
在这里插入图片描述

部署TC服务

微服务集成Seata

在这里插入图片描述
在这里插入图片描述

Seata的四种模式

XA - 强一致性

XA模式:强一致性模式,几乎所有主流的数据库都对XA规范提供了支持。

但是XA模式一阶段需要锁定数据库资源,等待二阶段结束才释放,性能较差,而且XA模式依赖于关系型数据库来实现事务。

正常情况下:
在这里插入图片描述
回滚情况下:
在这里插入图片描述
seata的XA模式:
seata对XA模式做了一些调整:

RM一阶段工作:

  • 注册分支事务到TC
  • 执行分支事务SQL但不提交
  • 报告执行状态到TC

TC二阶段工作:
TC检测各个分支事务执行状态

  • a、如果都成功,通知所有的RM提交事务
  • b、如果有失败,通知所有的RM回滚事务

RM二阶段工作:
接收TC指令,提交或回滚事务

在这里插入图片描述

代码中实现:

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

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

相关文章

【单片机】16-LCD1602和12864和LCD9648显示器

1.LCD显示器相关背景 1.LCD简介 (1)显示器,常见显示器:电视,电脑 (2)LCD(Liquid Crystal Display),液晶显示器,原理介绍 (3&#xff…

Java实现哈希表

1.哈希表定义 哈希表(hash table,也叫散列表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这…

浏览器唤起钉钉 各项功能

浏览器唤起钉钉对应人员聊天 文档地址 https://open.dingtalk.com/document/client/unified-routing-protocol 唤起聊天 不过只能唤起叮叮的名片 id为叮叮号 <a href"dingtalk://dingtalkclient/action/sendmsg?dingtalk_id{id}"></a>id&#xff1a; …

maven的pom.xml文件显示被删除

文章目录 1.问题情况2.问题分析3.问题解决 1.问题情况 2.问题分析 这些 pom.xml 文件被 maven 视为了忽略文件。 3.问题解决 路径&#xff1a;File --> Settings --> Build&#xff0c;Execution&#xff0c;Deployment --> Build Tools --> Maven --> Ignor…

06_Node.js服务器开发

1 服务器开发的基本概念 1.1 为什么学习服务器开发 Node.js开发属于服务器开发&#xff0c;那么作为一名前端工程师为什么需要学习服务器开发呢&#xff1f; 为什么学习服务器开发&#xff1f; 能够和后端程序员更加紧密配合网站业务逻辑前置扩宽知识视野 1.2 服务器开发可…

C++ 设计模式 —— 桥接模式

C 设计模式 —— 桥接模式 0. 引用连接 本文主要的思路和代码&#xff0c;来自于对以下连接的学习和实现&#xff1a; 桥接模式 1. 引言 1.1 什么是桥接模式&#xff1f; 桥接模式的定义桥接模式的作用 桥接模式&#xff0c;顾名思义&#xff0c;就像是一座连接两岸的桥…

bochs 对 Linux0.11 进行调试 (TODO: 后面可以考虑集成 vscode+gdb+qemu)

我在阅读 Linux0.11 源码时&#xff0c;对一个指令 LDS 感到困惑。 看了下 intel 指令集手册&#xff0c;能猜到 LDS 的功能&#xff0c;但不确定。 于是决定搭建调试环境&#xff0c;看看 LDS 的功能是否真如自己猜测。 首先 make debug 运行 qemu-Linux0.11&#xff0c;命…

基于Java+SpringBoot+Vue在线家具商城系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Ubuntu20.04 配置 yolov5_ros 功能包记录

文章目录 本文参考自博主源801,结合自己踩坑后修改 项目地址:https://github.com/mats-robotics/yolov5_ros 1.新建工作空间 新建一个工作空间 yolo_ros(名字可自定义),在 yolo_ros 下新建文件夹 src 并catkin_make进行编译 2. 安装相机驱动,可以选用较为主流的 usb_cam 或…

.net中用标志位解决socket粘包问题

以下为wpf中, 用标志位"q" 解决粘包问题 using MyFrameWorkWpf.Entities; using System.Collections.ObjectModel; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.…

代码随想录算法训练营第四十八天| LeetCode 70 爬楼梯、LeetCode 322 零钱兑换、LeetCode 279 完全平方数

1 LeetCode 70 爬楼梯 题目链接&#xff1a;LeetCode 70 爬楼梯 文章讲解&#xff1a;代码随想录(programmercarl.com) 2 LeetCode 322 零钱兑换 题目链接&#xff1a;LeetCode 322 零钱兑换 文章讲解&#xff1a;代码随想录(programmercarl.com) 视频讲解&#xff1a;装满背包…

Oracle关联机制

目录 1. 关联机制 1.1 循环嵌套关联 ( NESTED LOOPS JOIN) :大小表关联 1.2 哈希关联 (HASH JOIN )&#xff1a;两张大表 1.3 排序合并关联 (SORT MERGE JOIN)&#xff1a;有索引的两张表. 2. HINTS (提示符) 优化 --高水位线 1. 关联机制 1.1 循环嵌套关联 ( NESTED LO…

pytorch 如何训练一个模型

定义网络结构&#xff1a; 确定深度学习网络的架构&#xff0c;包括卷积层、池化层、全连接层等组件的设计。 准备数据集&#xff1a; 使用 DataLoader 从数据集中读取数据&#xff0c;也可使用现有的数据集。 定义损失函数和优化器&#xff1a; 选择合适的损失函数来衡量模…

python经典百题之根据值打印*

题目:读取7个数&#xff08;1—50&#xff09;的整数值&#xff0c;每读取一个值&#xff0c;程序打印出该值个数的 &#xff0a;。 程序分析 我们需要读取7个整数值&#xff0c;每个值在范围1到50之间&#xff0c;然后根据每个值的大小打印相应数量的星号&#xff08;*&…

ios safari 浏览器跳转页面没有自适应

今天开发遇到了一个问题&#xff0c;当用户点击浏览器中的表单进行注册时&#xff0c;表单元素会放大&#xff0c;随后跳转页面无法还原到初始状态。 这是因为如果 的 font-size 被设定为 16px 或更大&#xff0c;那么 iOS 上的 Safari 将正常聚焦到输入表单中。但是&#xff…

2023版 STM32实战8 独立看门狗(IWDG)

IWDG简介 STM32F10xxx内置两个看门狗&#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障。 说人话就是能解决程序跑飞的问题。 编写代码思路 -1- 使用这个功能必须解除写保护 -2-…

FLIP动画做拖拽排序效果

先来看效果 index.html文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content&quo…

H - 提瓦特之旅 2022CCPC女生赛

H - 提瓦特之旅 原题链接&#xff1a; https://vjudge.net/contest/532518#problem/H 题意&#xff1a; 一个有n个点&#xff0c;m条边的无向图&#xff0c;从u点到v点花费的时间和从v到u花费的时间都是C&#xff08;u&#xff0c;v&#xff09;&#xff0c;并且当经过路上的…

Netty深入浅出(无处不在的IO)

为什么要有Netty Netty是为了解决网络编程的复杂性和提供易于使用、高性能和可扩展的框架而开发的。它通过提供一组可重用的组件来处理网络通信的低级细节&#xff0c;例如套接字管理、线程和缓冲&#xff0c;简化了开发网络应用程序的过程。这使开发人员可以专注于应用程序逻…

自然语言处理 | WordNet

WordNet是词汇数据库,即英语词典,专为自然语言处理而设计。 Synset是一种特殊的简单接口,存在于 NLTK 中, 用于在 WordNet 中查找单词。同义词集实例是表达相同概念的同义词的分组。有些单词只有一个同义词集,有些则有多个。