广州 网站开发/营销策划公司的经营范围

广州 网站开发,营销策划公司的经营范围,菏泽公司网站建设,西安大雁塔简介分布式系统核心概念 1. CAP理论 CAP理论指出,分布式系统最多同时满足以下三项中的两项: 一致性(CC):所有节点访问同一份最新数据。可用性(AA):每个请求都能在合理时间内获得非错误…

分布式系统核心概念

1. CAP理论

CAP理论指出,分布式系统最多同时满足以下三项中的两项:

  • 一致性(CC):所有节点访问同一份最新数据。
  • 可用性(AA):每个请求都能在合理时间内获得非错误响应。
  • 分区容错性(PP):系统在网络分区(节点间通信中断)时仍能运行。

取舍场景

  • 当网络分区(PP)发生时,需在CC与AA间选择:
    • 选择CC(如金融系统):拒绝写入以保持一致性,牺牲可用性。
    • 选择AA(如社交平台):返回旧数据,牺牲一致性。

2. 分布式事务

解决跨服务或跨数据库操作的数据一致性问题。

(1)2PC(两阶段提交)

  • 流程
    1. 准备阶段:协调者询问所有参与者“能否提交”。
    2. 提交阶段:若所有参与者同意,协调者通知提交;否则回滚。
  • 问题:协调者单点故障可能导致参与者长期阻塞。

(2)TCC(Try-Confirm-Cancel)

  • 三阶段
    1. Try:预留资源(如冻结库存)。
    2. Confirm:提交(如扣减库存)。
    3. Cancel:回滚(如解冻库存)。
  • 缺点:需业务代码实现补偿逻辑,侵入性强。

(3)Seata的AT模式

  • 原理
    1. 自动生成反向SQL:记录数据快照(UNDO_LOG),用于回滚。
    2. 全局锁:防止其他事务修改同一数据。
  • 优点:业务侵入性低,无需手动编写补偿逻辑。

3. 分布式锁

确保分布式环境下资源的互斥访问。

(1)基于Redis的实现

  • 核心命令SETNX(或SET key value NX EX)设置锁,Lua脚本保证原子性解锁。
  • 示例
-- 加锁(设置过期时间)
SET lock_key unique_value NX EX 30
-- 解锁(Lua脚本验证值后删除)
if redis.call("get", KEYS[1]) == ARGV[1] thenreturn redis.call("del", KEYS[1])
elsereturn 0
end
  • 问题:锁过期时间需合理,避免业务未完成锁已释放。

(2)基于ZooKeeper的实现

  • 临时顺序节点
    1. 客户端创建临时顺序节点(如/lock/node_00000001)。
    2. 监听前一个节点,若前序节点释放,则获取锁。
  • Watcher机制:节点删除时触发通知,避免轮询。
  • 优点:锁自动释放(会话断开时节点删除),无死锁风险。

对比与总结

技术优点缺点
2PC强一致性协调者单点问题,性能低
TCC灵活性高需业务侵入,实现复杂
Seata AT自动化补偿,低侵入依赖全局锁,并发性能受限
Redis锁高性能,易扩展锁超时时间难设定
ZooKeeper锁高可靠性,无死锁性能低于Redis,依赖ZK集群

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

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

相关文章

鸿蒙UI开发

鸿蒙UI开发 本文旨在分享一些鸿蒙UI布局开发上的一些建议,特别是对屏幕宽高比发生变化时的应对思路和好的实践。 折叠屏适配 一般情况(自适应布局/响应式布局) 1.自适应布局 1.1自适应拉伸 左右组件定宽 TypeScript //左右定宽 Row() { …

基于EFISH-SBC-RK3576的无人机智能飞控与数据存储方案

一、方案背景 民用无人机在电力巡检、农业植保、应急救援等领域快速普及,但传统方案面临‌多协议设备兼容性差‌、‌野外环境数据易丢失‌、‌复杂电磁干扰‌三大痛点。 电鱼智能推出‌EFISH-SBC-RK3576‌,可集成双冗余总线接口与工业级加固存储&#x…

数据库----单表、多表

数据库 create database 数据库名称;---创建数据库create database 数据库名称 default charsetutf8mb4;---创建数据库,同时指定编码show databases;---查看当前数据库管理下存在多少数据库show databases like "db_%";---查询以db_开头的数据库select d…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例6,TableView16_06 分页表格拖拽排序

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

谷歌推出Gemini实时AI视频功能,开启智能交互新体验

3月24日,谷歌发言人亚历克斯约瑟夫向媒体证实,谷歌已开始向 Gemini Live 推出新的人工智能功能。这些功能使 Gemini 能够“看到”用户的屏幕内容,或通过智能手机摄像头获取画面,并实时回答与之相关的问题。这一创新标志着人工智能…

Windows 新型零日漏洞:远程攻击可窃取 NTLM 凭证,非官方补丁已上线

近日,安全研究人员披露了一个新型 Windows 零日漏洞,影响从Windows 7和Server 2008 R2到最新Windows 11 v24H2及Server 2025的所有Windows操作系统版本。攻击者只需诱使用户在Windows资源管理器中查看恶意文件,即可利用该零日漏洞窃取NTLM&am…

一款超级好用且开源免费的数据可视化工具——Superset

认识Superset 数字经济、数字化转型、大数据等等依旧是如今火热的领域,数据工作有一个重要的环节就是数据可视化。 看得见的数据才更有价值! 现如今依旧有多数企业号称有多少多少数据,然而如果这些数据只是呆在冷冰冰的数据库或文件内则毫无…

作业14 (2023-05-22_const修饰指针)

第1题/共5题【单选题】 C程序常见的错误分类不包含:( ) A.编译错误 B.链接错误 C.栈溢出 D.运行时错误 回答正确 答案解析: 栈溢出是运行时错误的一种,因此C程序不会将栈溢出错误单独列出来,栈溢出包含在运行时错误中。 因此:选择C 第2题/共5题【单选题】 以下关于…

《Tr0ll2 靶机渗透实战:弱口令+SUID+两种缓冲区溢出+ 提权完整+fcrackzip暴力破解+shellshock漏洞+脏牛三种root提权复盘》

Tr0ll2 1、主机发现 arp-scan -l 2、端口扫描 nmap -sS -sV 192.168.66.181 nmap -sS -A -T4 -p- 192.168.66.181 nmap --scriptvuln 192.168.66.181PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.8 or later 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.4 (…

redis常用部署架构之redis分片集群。

redis 3.x版本后开始支持 作用: 1.提升数据读写速度 2..提升可用性 分片集群就是将业务服务器产生的数据储存在不同的机器上。 redis分片集群的架构 如上图所示,会将数据分散存储到不同的服务器上,相比于之前来说,redis要处…

分布式数据库介绍

分布式数据库介绍 一、定义与核心概念 分布式数据库是一种在物理上分散存储、逻辑上统一管理的数据管理系统,其核心特征包括数据分布性、逻辑关联性、场地透明性和可扩展性。根据最新定义,分布式数据库需具备分布式事务处理能力、平滑扩展能力&#xf…

MybatisPlus(SpringBoot版)学习第五讲:条件构造器和常用接口

目录 1.wrapper介绍 2.QueryWrapper 2.1 例1:组转查询条件 Compare Nested Join Func 2.2 例2:组装排序条件 2.3 例3:组装删除条件 2.4 例4:条件的优先级 2.5 例5:组装select子句 2.6 例6:实现子查…

计算机视觉算法实战——手术导航:技术、应用与未来

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 1. 手术导航中的计算机视觉:领域介绍 计算机视觉在手术导航领域的应用代表了现代医学与人工智…

【科研绘图系列】R语言绘制PCA与变量的相关性散点图(scatter plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据画图输出图片系统信息介绍 【科研绘图系列】R语言绘制PCA与变量的相关性散点图(scatter plot) 加载R包 library(tidyverse) library(ggpubr)数据下载 …

深度解析Spring Boot可执行JAR的构建与启动机制

一、Spring Boot应用打包架构演进 1.1 传统JAR包与Fat JAR对比 传统Java应用的JAR包在依赖管理上存在明显短板,依赖项需要单独配置classpath。Spring Boot创新的Fat JAR(又称Uber JAR)解决方案通过spring-boot-maven-plugin插件实现了"…

安科瑞微电网能量管理控制箱,光伏发电的守护者

安科瑞顾强 随着工业的发展,很多用电设备和工厂设备采用直流系统供电,直流系统的正极和负极不接地。对于不接地(IT)配电系统,应该进行绝缘电阻的监控以保证供电系统的安全运行。 AIM-D100-TS 系列直流绝缘监测仪可以…

[计算机网络]网络I/O模型

欢迎来到啾啾的博客🐱。 这是一个致力于构建完善的Java程序员知识体系的博客📚,记录学习的点滴,分享工作的思考、实用的技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。…

Vue中使用JsonView进行JSON数据展示

前言 最近在开发公司的管理系统的操作日志模块,要查看某条操作日志的请求参数,要将请求的参数以 JSON 格式的形式展示出来,于是用到了Vue-JSON-Viewer 这个插件。 一、Vue-JSON-Viewer 基础入门 插件简介 Vue-JSON-Viewer 是一个用于在Vue项…

vue vue3 走马灯Carousel

背景: 在项目中需要展示多张图片,但在页面上只有一张图片的有限位置,此时考虑使用轮播图实现多张图片的展示。element组件官网有走马灯Carousel的组件详细介绍。 实现效果: 官网链接:点击跳转 核心代码: …

重学vue3(三):vue3基本语法及使用

组合式 API是vue3 的核心特性&#xff0c;替代 Vue2 的选项式 API&#xff0c;强调逻辑复用和代码组织。基本语法如下&#xff1a; <script setup> import { ref, reactive, computed, onMounted } from vue;// 1. 响应式数据 const count ref(0); // 基本类…