分布式砖题

  雪花算法

变动位数,性能佳,灵活调整bit位划分,灵活

zk

临时节点和watch机制实现注册中心 ,数据都在内存,nio  多线程模型;

cp注重一致性,集群数据不一致时集群不可用

数据一致性模型

cap 强一致,更新操作完 多个后续进程访问返回最新的更新过的值

弱一致:系统数据写入后 不一定立即读取最新写入数据 

最终一致性:所有数据副本 经过一段时间的同步后 最终能够达到一致的状态

   因果一致性:因果关系的操作顺序得到保证

   会话一致性:对系统数据的访问过程框定在一个会话中

分布式事务

本地消息表:说白了就是一个记录

  操作信息 存到库中 成功状态改为成功,失败定时任务重试调用

消息队列:rocketMQ 

  1.生产者订单系统发送一条half消息到broker

  2.创建订单,成功与否 向broker发送commit和rollback

  3.向broker提供回调接口,当broker一段时间内half消息没有收到操作命令,则主动调此接口来查询订单是否创建成功

  4.half消息commit了,另一个系统来消费,消费成功 消息销毁 分布式事务成功,上一篇有图可see

  5.失败则重试策略 再失败 死信队列 等待进一步处理

seata:二阶段提交

微服务框架/at模式/tcc模式/saga模式/xa模式/高可用 https://seata.apache.org/zh-cn/

 xa 强一致:acid

rm本地事务隔离行保证全局隔离,串行化隔离级别下性能问题

tm申请全局锁 tc生成xid,tm通过微服务调用链传给其他服务

rm本地事务xid分支事务注册到tc,tc返回说准备吧 rm执行本地事务并告知tc结果

tm请求tc对xid提交或回滚

tc指挥xid所有分支提交 回滚

阿里开源的分布式事务框架 Seata

回滚:回滚日志

   分支事务对应数据库一个回滚日志undo_log,收到回滚据undo生成回滚操作

   收到提交,undo_log响应记录删除掉

rm和tc

监控拦截jdbc,监控到开启了本地事务 自动向tc注册 生成回滚日志 汇报执行结果

二阶段回滚失败

tc命令rm回滚,一个微服务挂掉了,all微服务不执行回滚,直到正常启动,tc重新执行全局回滚

未待完续

微服务18_分布式事务02:Seatda:四种模式XA、AT、TCC、SAGA-CSDN博客

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

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

相关文章

图解CodeWhisperer的安装使用

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 📘 CodeWhisperer简介 &#…

力扣202. 快乐数

思路:用一个set记录是否重复出现过某值,是 则是无限循环,不可能还有1的情况,直接返回false; 否则一直处理生产新的数,直到为1; class Solution {public boolean isHappy(int n) {//set记录是否重复出现过某…

一文解读ISO26262安全标准:技术安全概念TSC

一文解读ISO26262安全标准:技术安全概念TSC TSC是Technical Safety Concept的简称,由FSM执行。 1 什么是TSC? 参考功能安全需求和详细的架构设计,TSC对 FSC 进行了细化,它描述了如何实施在功能安全概念FSC中所描述的安…

内存条@电脑支持的最大内存@升级内存硬件

文章目录 电脑支持的最大内存规格cpu官网查看支持的规格命令行查看脚本化 DDR内存LPDDR内存内存升级扩展👺插槽检查板载内存SPD内存厂商其他 内存参数👺性能指标使用软件查看更多内存相关的软件工具 电脑支持的最大内存规格 确认电脑最大支持内存大小和频…

自动化部署利器:Jenkins+Gitlab助力Springboot项目快速上线,实现持续集成与持续交付!

Jenkins 能干什么 来自官网 官网 Jenkins怎么用【Linux版】 下载 war包 本机为Java8 选择Jenkins版本为2.289.1 注意: 如果是Java8 尽量和我的Jenkins版本保持一致哈!后面可能会遇到各种坑。 把下载好的war放到Linux服务器的某一个目录下 启动war …

python沧州市人民医院患者就诊信息管理系统flask-django-nodejs-php

因此,本论文旨在探讨人民医院患者就诊信息管理系统的建设与实施,分析其在医疗服务中的作用和意义,进一步探讨如何优化医院信息系统和提高医疗服务质量。通过对人民医院患者就诊信息管理系统的研究,可以为医院信息化建设提供借鉴和…

Tastewise推出AI解决方案TasteGPT

Tastewise推出AI解决方案TasteGPT 概述 Tastewise,一家为食品和饮料行业提供AI驱动的市场情报平台的领先企业,近日推出了其最新的生成式AI解决方案——TasteGPT。该产品旨在为品牌提供快速且具有上下文的产品创意洞察,帮助品牌做出正确的决…

面试笔记——Redis(双写一致、持久化)

双写一致 双写一致性: 当修改了数据库中的数据,也要更新缓存的数据,使缓存和数据库中的数据保持一致。 相关问题:使用Redis作为缓存,mysql的数据如何与Redis进行同步?——双写一致性问题 回答时&#xff0…

基于单片机的农业智能节水灌溉系统设计

摘要:农业的发展状况一直以来都是我国重点关注的对象之一。在灌溉农作物的过程中人们大多会根据自己多年来的灌溉经验进行灌溉,这样的方式会花费大量的人力物力,还浪费大量的水资源。基于此,笔者基于单片机的智能节水灌溉系统的方法展开研究,设计了一款农业智能节水灌溉系…

Vue 计算属性和监视属性

Vue 计算属性和监视属性 computed computed 计算属性 规则: 用已有的属性计算不存在的属性默认调用一次get()只有值不发生改变的时候才可以使用简写(函数);值发生改变 使用对象式写法,才可以配置set()方法底层原理使…

[项目设计]基于websocket实现网络对战五子棋

项目介绍 该项目旨在实现一个网页端的在线五子棋,将实现登陆、好友、房间、对战、观战、聊天等功能 完成该项目需要了解C、数据库MySQL、基础前端HTML/CSS/JS/Ajax、网络协议WebSocket 项目源码:azhe1/online_gobang - 码云 - 开源中国 (gitee.com) …

GPT系列模型的特点

GPT系列模型(包括GPT-1、GPT-2和GPT-3)都基于自回归Transformer架构。在设计上,这些模型的核心思想是利用自回归机制来捕捉整个序列的上下文信息。GPT系列模型通过其独特的自回归架构逐步地整合整个序列的完整语义。 自回归机制:…

静态页面负载均衡

如有两个节点xxx.xx.xxx.123、xxx.xx.xxx.456, 一、tomcat组件负载均衡 部署后端服务,启动tomcat即可启动服务。如123和456的8080端口上均部署了myTest服务,使用upstream直接代理即可。 upstream myTest_upstream {server xxx.xx.xxx.123:8…

配电站房安全AI识别-智能化安全监控的革命---豌豆云

配电站作为现代社会生活和工业活动的能源枢纽,起着至关重要的作用。它们确保电力的稳定供应,支持医疗、交通、通讯等多个关键领域的运作。 然而,随着城市化进程加快和电力需求激增,旧有的监控系统已经难以跟上现代化电网的步伐。…

图论01-DFS和BFS(深搜和广搜邻接矩阵和邻接表/Java)

1.深度优先理论基础(dfs) dfs的两个关键操作 搜索方向,是认准一个方向搜,直到碰壁之后再换方向 换方向是撤销原路径,改为节点链接的下一个路径,回溯的过程。dfs解题模板 void dfs(参数) {if (终止条件) {存放结果;return;}for …

R语言实现多要素偏相关分析

偏相关分析是指当两个变量同时与第三个变量相关时,将第三个变量的影响剔除,只分析另外两个变量之间相关程度的过程,判定指标是相关系数的R值。 在GIS中,偏相关分析也十分常见,我们经常需要分析某一个指数与相关环境参…

网络基础知识-DNS与DHCP+网络规划与设计故障诊断+嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。 本章的主要内容见下图: 本章知识和计算机…

MNN createSession 之创建流水线后端(四)

系列文章目录 MNN createFromBuffer(一) MNN createRuntime(二) MNN createSession 之 Schedule(三) MNN createSession 之创建流水线后端(四) MNN Session::resize 之流水线编码&am…

python sqlalchemy操作mysql密码包含@特殊字符报错的解决方案

from sqlalchemy import create_engine userName ‘root’ password ‘xxxx163’ dbHost ‘127.0.0.1’ dbPort 3306 dbName ‘robot’ DB_CONNECT f’mysqlpymysql://{userName}:{password}{dbHost}:{dbPort}/{dbName}?charsetutf8’ engine create_engine( DB_CON…

B站python爬虫课程笔记(Q16-)

下面是学习的网址: ​​​​​​【Python爬虫】 16、捕捉异常try&except语句的一些问题 1)一些常见的异常类型 IndexError索引错误ZeroDivisionError除零错误FileNotFindError找不到文件错误TypeError类型错误KeyError键错误ValueError值错误Ind…