分布式锁
分布式锁在叙述分布式锁前,先对锁的原理进行理解。如何避免竞争条件两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序,称为竞争条件。——《现代操作系统》而锁正是避免竞争条件的解决方案之一。再列出《现代操作系统》一书中,要成为一个解决竞争条件的好...
2024-01-10分布式幂等
update t_reps set count=count-1,version=version+1 where version=11.购买手机的时候,先查询库存,剩1件,假如当前如version为1 2.更新的时候version+1,count-1 3.同是有新数据语句的时候,version已经等于2的时候,不为1,则不操作消费端幂等性保证唯一id+指纹码,利用数据库主键去重 select count(1) from t_order where id=唯一id+...
2024-01-10分布式总结
CAPhttps://my.oschina.net/garlicts/blog/3196719 最终一致性https://my.oschina.net/garlicts/blog/1924627https://my.oschina.net/garlicts/blog/1924537 幂等操作 分布式事务指事务的每个操作步骤都位于不同的节点上,需要保证事务的 AICD 特性。事务的AICD,可以看这个博客: https://blog.csdn.net/dengjili/article/details/8246...
2024-01-10分布式CAP
互联网发展到现在,由于数据量大、操作并发高等问题,大部分网站项目都采用分布式的架构。而分布式系统最大的特点数据分散,在不同网络节点在某些时刻(数据未同步完,数据丢失),数据会不一致。在2000年,Eric Brewer教授在PODC的研讨会上提出了一个猜想:一致性、可用性和分区容错性三者无...
2024-01-10分布式幂等性
幂等性:一个接口运行多次,与运行一次的效果是一样的 update t_reps set count=count-1,version=version+1 where version=11.购买手机的时候,先查询库存,剩1件,假如当前如version为1 2.更新的时候version+1,count-1 3.同是有新数据语句的时候,version已经等于2的时候,不为1,则不操作消费端幂等性保证唯一id+指纹码...
2024-01-10分布式事物理解
第二步:JTA执行预提交第三步: 预提交都成功就执行commit,只要有一个失败就执行rollback。为什么会有三阶断?降低失败的概率:因为同时commit,如果因为网络问题,或者tomcat本身挂掉了,那么三阶断的commit就不会执行,当然要会有一个问题,三阶断的commit也失败了怎么办?所以说它的最终一致性...
2024-01-10分布式锁实现原理
扯一扯分布式锁吧,没有代码,就是存粹的文字描述原理。原理懂了,代码自然就出来了。分布式锁目前大部分都是基于redis和zk两种中间件来实现,当然,有一些其他中间件也是可以实现的,其余的就不叙述了,就针对这两种进行描述下吧。分布式的锁重点就是将各个客户端的请求进行原子化操作。...
2024-01-10分布式ID生成方案
1. 场景大型分布式中涉及到:订单号、商品ID等。分布式唯一ID有哪些特性或要求呢?① 唯一性:生成的ID全局唯一,在特定范围内冲突概率极小。② 有序性:生成的ID按某种规则有序,便于数据库插入及排序。③ 可用性:可保证高并发下的可用性, 确保任何时候都能正确的生成ID。④ 自主性:分...
2024-01-10Saga分布式事务
前言说到分布式事务,大部分人都会知道ACID,两阶段提交,TCC等常见模式。 在微服务大行其道的今天,基于Saga实现的分布式事务则更具普适性。微服务事务微服务是将服务粒度控制在上下文内的松耦合的服务架构。对于微服务架构的事务建议对于数据库提供强一致的事务,在服务上下文之间依靠最...
2024-01-10分布式锁的简单总结
为什么需要分布式锁直接作用是保证同一时刻同一代码不被重复执行, 更深一层目的其实是为了保证“功效性”和“正确性”.功效性(Efficiency)即节省计算机资源, 减少不必要的重复执行. 如果只是单纯地保证功效性, 一般可以容忍锁出现失误, 因为不会对执行结果造成影响.准确性(Correctness) 即程...
2024-01-10一文看懂分布式事务
本地事务事务Transaction由一组SQL组成,具有四个ACID特性。ACID1. Atomicity 原子性,构成事务的一组SQL,要么全部生效,要么全不生效,不会出现部分生效的情况2. Consistency 一致性,数据库经过事务操作后从一种状态转变为另一个状态。可以说原子性是从行为上描述,而一致性是从结果上描述3. Isolat...
2024-01-10分布式ID的简单总结
简单总结一下流行的分布式id的实现方法 雪花算法snowflake是twitter开源的分布式ID生成算法.核心思想是:分布式ID固定是一个long型的数字,一个long型占8个字节,也就是64个bit,原始snowflake算法中对于bit的分配如下图:第一个bit位是标识部分,在java中由于long的最高位是符号位,正数是0,负数是1,...
2024-01-10分布式学习day02
今天学习分布式的项目搭建,第二天使用 intelliJ IDEA 渐渐适应了操作搭建分布式项目,我把他分为一个父工程和14个子工程如图是各项目的关系依赖:idea包结构:搭建好我们所需要的工程之后,我们就需要配置XML文件和POM.xml文件 父工程的POM文件 <!-- 集中定义依赖版本号 --><propert...
2024-01-10分布式事务TCC机制
CAP定理 CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的,他指出WEB服务无法同时满足一下3个属性:一致性(Consistency) : 客户端知道一系列的操作都会同时发生(生效)可用性(Availability) : 每个操作都必须以可预期的响应结束分区容错性(Partition tolerance) : 即使出现单个组件无法可用,操作依然可...
2024-01-10分布式事务-个人理解
capC:一致性被称为原子对象,任何的读写都应该看起来是“原子”,或串行的。写后面的读一定能读到前面写的内容,所有的读写请求都好像被全局排序。A:对任何非失败节点都应该在有限时间内给出请求的回应。(请求的可终止性)P:允许节点之间丢失任意多的消息,当网络分区发生时,节点之...
2024-01-10分布式事务的N种实现
需求缘起在微服务架构中,随着服务的逐步拆分,数据库私有已经成为共识,这也导致所面临的分布式事务问题成为微服务落地过程中一个非常难以逾越的障碍,但是目前尚没有一个完整通用的解决方案。其实不仅仅是在微服务架构中,随着用户访问量的逐渐上涨,数据库甚至是服务的分片、分区...
2024-01-10MinIO的分布式部署
高可用分布式对象存储,MinIO 轻松实现。1 前言上一篇文章介绍了使用对象存储工具 MinIO 搭建一个优雅、简单、功能完备的静态资源服务,可见其操作简单,功能完备。但由于是单节点部署,难免会出现单点故障,无法做到服务的高可用。MinIO 已经提供了分布式部署的解决方案,实现高可靠、高可...
2024-01-10ESL分布式改造日志1
分布式部署之后可能碰到的问题:1)session管理使用keepalived对nginx进行热备,暂时不实行。管理分布式session的四种方式,暂时可以使用第二种:会话保持,在nginx的配置中使用:upstream esl { ip_hash; server 192.168.100.161:9999 weight=1; server 192.168.100.119:9999 weight=1; }2)定时任务待研究3)mqtt...
2024-01-10对于分布式Job的思考
引言在清理Github的时候,发现以前写的一个简单的分布式任务分发系统ClawHub/task-distribution,使用了zk的选主与队列,调度器使用spring的ThreadPoolTaskScheduler,任务支持cron表达式。这让我想起在这之前还封装过Quartz,那时候做的是单机版超大型应用,内部需要做调度系统。目前在公司使用过Elastic-Job,也...
2024-01-10分布式事务基础理论(二)
结合电商系统中的业务场景理解CAP。如图:整体执行流程如下:商品服务请求写入主数据库信息,包括添加商品,修改商品,删除商品;主数据库向商品服务响应写入成功。商品服务请求从数据库读取商品信息。Consistency:一致性是指写操作后的读操作,可以读取到最新的数据状态,当数据分步在...
2024-01-10Minio分布式集群部署
集群安装一、基础环境 操作系统:CentOS 7.3 Minio下载二、准备工作 2.1、机器资源172.30.1.177/apps/minio/data1 /apps/minio/data2172.30.1.180/apps/minio/data1 /apps/minio/data2本集群由2台服务器构成,每个服务器上挂载两个目录 三、编写集群启动脚本(所有节点配置文件相同)vim /opt/minio/run.sh#!/bin/bashexport MINIO_A...
2024-01-10分布式锁三种实现方式及对比
分布式锁三种实现方式:1. 基于数据库实现分布式锁;2. 基于缓存(Redis等)实现分布式锁;3. 基于Zookeeper实现分布式锁;一, 基于数据库实现分布式锁1. 悲观锁利用select … where … for update 排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段...
2024-01-10幻塔磁能之核分布
幻塔游戏中磁能之核可以通过采集元素矿石、晶石矿有一定的概率获得;或者是武器黑市,玩家可以消耗对应的货币兑换,还可以通过助力商店获得,接下来将带来详细信息,感兴趣的朋友快来看看吧 磁能之核是一种突破材料,是玩家提升武器强度和培养价值的重要物品,是玩家需要尽可能囤积的,具...
2024-01-10分布式|DBLE之SQL解析
数据库中间件与数据库有什么区别?个人认为除了没做数据存储,其他的功能数据库中间件几乎一样不少,比如 SQL 解析、结果集处理、协议实现等。SQL 解析的定义今天我们主要来谈谈 SQL 解析,SQL 的全称为 Structured Query Language,即结构化查询语言,既然定义为语言,那其实它和任何其他语言都是...
2024-01-10