- 浏览: 494632 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
分布式系统数据一致性
分布式事务有两种解决方式
1.异步消息(消息队列)
(1)使用异步消息 Consumer 端需要实现幂等,幂等是指多个请求返回相同的结果。
(a)一种方式是业务逻辑保证幂等。比如接到支付成功的消息订单状态变成支付完成,如果当前状态是支付完成,则再收到一个支付成功的消息则说明消息重复了,直接作为消息成功处理。
(b)另外一种方式如果业务逻辑无法保证幂等,则要增加一个去重表或者类似的实现。对于 producer 端在业务数据库的同实例上放一个消息库,发消息和业务操作在同一个本地事务里。发消息的时候消息并不立即发出,而是向消息库插入一条消息记录,然后在事务提交的时候再异步将消息发出,发送消息如果成功则将消息库里的消息删除,如果遇到消息队列服务异常或网络问题,消息没有成功发出那么消息就留在这里了,会有另外一个服务不断地将这些消息扫出重新发送。
2. 有的业务不适合异步消息的方式,事务的各个参与方都需要同步的得到结果。每个参与方的本地业务库的同实例上面放一个事务记录库。由一个中心服务对比三方的事务记录表,做一个最终决定。假设现在三方的事务记录是 A 成功,B 失败,C 成功。那么最终决定有两种方式,根据具体场景:
(1)重试 B,直到 B 成功,事务记录表里记录了各项调用参数等信息;
(2)执行 A 和 B 的补偿操作(一种可行的补偿方式是回滚)。
DTS 方案
1.支付宝在 2PC 的基础上改进而来。
2.分布式事务服务 (Distributed Transaction Service, DTS) 是一个分布式事务框架,用来保障在大规模分布式环境下事务的最终一致性。
分布式环境下(数据分布)要任何时刻保证数据一致性是不可能的,只能采取妥协的方案来保证数据最终一致性。
参考原文(保证分布式系统数据一致性的6种方案):http://www.cnblogs.com/lzyGod/p/5558474.html
参考原文(关于分布式系统的数据一致性问题):http://elf8848.iteye.com/blog/2067771
分布式事务有两种解决方式
1.异步消息(消息队列)
(1)使用异步消息 Consumer 端需要实现幂等,幂等是指多个请求返回相同的结果。
(a)一种方式是业务逻辑保证幂等。比如接到支付成功的消息订单状态变成支付完成,如果当前状态是支付完成,则再收到一个支付成功的消息则说明消息重复了,直接作为消息成功处理。
(b)另外一种方式如果业务逻辑无法保证幂等,则要增加一个去重表或者类似的实现。对于 producer 端在业务数据库的同实例上放一个消息库,发消息和业务操作在同一个本地事务里。发消息的时候消息并不立即发出,而是向消息库插入一条消息记录,然后在事务提交的时候再异步将消息发出,发送消息如果成功则将消息库里的消息删除,如果遇到消息队列服务异常或网络问题,消息没有成功发出那么消息就留在这里了,会有另外一个服务不断地将这些消息扫出重新发送。
2. 有的业务不适合异步消息的方式,事务的各个参与方都需要同步的得到结果。每个参与方的本地业务库的同实例上面放一个事务记录库。由一个中心服务对比三方的事务记录表,做一个最终决定。假设现在三方的事务记录是 A 成功,B 失败,C 成功。那么最终决定有两种方式,根据具体场景:
(1)重试 B,直到 B 成功,事务记录表里记录了各项调用参数等信息;
(2)执行 A 和 B 的补偿操作(一种可行的补偿方式是回滚)。
DTS 方案
1.支付宝在 2PC 的基础上改进而来。
2.分布式事务服务 (Distributed Transaction Service, DTS) 是一个分布式事务框架,用来保障在大规模分布式环境下事务的最终一致性。
分布式环境下(数据分布)要任何时刻保证数据一致性是不可能的,只能采取妥协的方案来保证数据最终一致性。
参考原文(保证分布式系统数据一致性的6种方案):http://www.cnblogs.com/lzyGod/p/5558474.html
参考原文(关于分布式系统的数据一致性问题):http://elf8848.iteye.com/blog/2067771
发表评论
-
SQL常用语句
2022-07-21 19:09 208delete from cacherefresh where ... -
ES数据同步方案
2022-06-24 10:57 2300//============================= ... -
SQL存储过程例子和有用的SQL
2022-02-19 09:20 198delete from cacherefresh where ... -
SQL优化对比与总结
2021-01-09 14:44 37619000000 b表 SELECT * from b w ... -
执行存储过程测试
2020-12-30 16:47 385--执行存储过程创建 if (exists (select * ... -
mysql提高insert into 插入速度的方法
2018-12-14 17:26 6108mysql提高insert into 插入 ... -
Mysql并发时经典常见的死锁原因及解决方法
2018-12-08 09:30 3059Mysql并发时经典常见的死锁原因及解决方法 MySQL有 ... -
数据库沉余实现方式
2018-12-04 17:30 1020数据库沉余实现方式 canal 原理相对比较简单: (1)c ... -
最终一致性的常用做法
2018-12-01 22:28 638最终一致性的常用做法 ... -
库存扣减和锁
2018-11-29 16:19 2库存扣减和锁 在对数据库的值进行修改时,如果在多线程情况下 ... -
Spring Boot中整合Sharding-JDBC
2018-11-26 18:03 3446Spring Boot中整合Sharding-JDBC ... -
MYSQL 主从、读写分离、分库分表、高可用、数据安全
2018-11-19 18:03 1733MYSQL 主从、读写分离、分库分表、高可用、数据安全 ... -
mybatis-generator 使用
2018-05-19 11:29 560http://www.cnblogs.com/Jason-Xi ... -
eclipse JPA Tools 使用
2018-05-14 17:11 775https://blog.csdn.net/guoxin91/ ... -
mybatis 通用查询实现
2018-03-26 10:04 1422package com.oceano.modity.entit ... -
存储过程 函数
2017-10-27 17:59 472存储过程 函数 存储过 ... -
分页查询例子
2017-10-19 10:22 776分页查询例子 Mybatis分页插件PageHelper的 ... -
数据库同步工具
2017-10-14 14:27 1339数据库同步工具 goden gate Oracle Go ... -
ETL工具
2017-09-01 15:14 757ETL工具 ETL,是英文 Extract-Transfor ... -
PowerDesigner 对比pdm文件内容变化工具
2017-08-06 14:24 702PowerDesigner 对比pdm文件内容变化工具
相关推荐
【标题】:“基于消息队列的分布式系统数据一致性方法研究.pdf” 【摘要】:本文主要探讨了在分布式环境中如何保持数据一致性,通过分析一个实际的容灾系统,研究了数据同步和数据一致性的问题。作者提出了一种利用...
为了便于讨论问题,先简单介绍下数据一致性的基础理论。当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据...
总结来说,数据一致性是分布式系统设计中的核心难题,它涉及到程序设计、硬件、并发控制等多个方面。理解并有效管理一致性,对于构建可靠、高效、大规模的分布式系统至关重要。开发者需要不断探索和优化解决方案,以...
分布式系统通过将数据分布在不同的节点上,来提高系统的可靠性和性能,但这也引入了数据一致性维护的复杂性。 一致性问题在分布式系统设计和实现中扮演着重要角色。为了确保数据在不同节点间保持一致,必须采取一...
在分布式系统中,缓存一致性问题是系统性能的关键。由于分布式系统由多个计算节点组成,这些节点可能分布在不同的地理位置,因此系统中的数据拷贝需要保持一致,以确保系统的正常运行。缓存技术的引入可以缓解数据...
在分布式存储系统中,数据一致性是指如何确保所有数据副本保持同步,无论数据是在进行读取操作还是写入操作。一致性要求数据在写入后能够被正确地复制到各个副本上,且不会出现错乱或遗漏。为实现这一点,分布式存储...
在探讨分布式系统事务一致性解决方案时,我们首先需要理解分布式系统的核心挑战之一就是如何在保证数据一致性的同时,还要维持系统的可用性和分区容错性。根据CAP定律,一个分布式系统不可能同时满足这三个特性。在...
尽管Paxos算法有着复杂的逻辑和操作过程,但它的稳定性和可靠性使其成为解决分布式系统数据一致性问题的首选算法。随着技术的进步和新算法的提出,Paxos算法也在不断地被优化和改进,以适应更加复杂的分布式应用需求...
4. 一致性协议:保证分布式系统数据一致性的协议,如Paxos、Raft。 5. 事件最终一致性模型:在没有强一致性要求的情况下,系统最终达到一致状态的模型,如CRDTs(冲突无关数据类型)和CALM定理(一致性与可用性逻辑...
针对分布式系统中数据一致性的问题,有几种不同的定义方法来描述系统在何种程度上保证数据的一致性。 - **强一致性(即时一致性)**:如果某个客户端写入了一个新的值,则所有后续对该值的读取操作都将返回这个最新...
数据复制技术是实现分布式系统数据一致性的重要手段。在Oracle分布式系统中,数据复制允许系统管理员将关键数据从一个数据库复制到多个数据库中,以此来提高数据的可用性和安全性。通过复制技术,数据可以分散存储在...
内容概要:文章深入讨论了分布式系统中一致性协议面临的挑战及优化策略,特别是基于动态负载均衡、数据复制与分片,和高效通信的方案。实验结果显示优化策略能在降低延时、增大吞吐量以及提高可扩展性三个方面显著...
该平台通过一系列机制确保了在异步消息传递过程中的数据一致性。 首先,系统设计中引入了幂等性原则,即无论同一操作执行多少次,结果始终相同。这样可以避免因为消息重复发送或接收导致的不一致状态。同时,平台...
**CAP 定理** 是理解分布式系统中数据一致性问题的基础。该定理指出,在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三个属性不可能同时完全满足。具体来说...
3. **分布式计算模型**:讨论CAP定理、Paxos算法、Raft一致性协议等,这些都是确保分布式系统数据一致性的核心概念。 4. **分布式文件系统**:如GFS(Google File System)和HDFS(Hadoop Distributed File System...
在分布式系统中,由于数据分布在多个节点上,数据一致性成为了一个关键挑战。分布式UDDI注册中心通常由多个子注册中心组成,每个子中心存储一部分Web服务的注册信息。这种架构虽然提高了服务的可用性和容错性,但也...
在分布式系统中,由于网络延迟、节点故障和并发操作的存在,保持数据一致性是一项极具挑战性的任务。一致性模型如强一致性、弱一致性或最终一致性,提供了不同的解决方案来平衡可用性和一致性。Paxos算法就是为了...