业界里面用MHA最多,pxc其次,MGR由于比较新还挺少 其他的高可用方案还有共享存储、MMM(淘汰了),Heartbeat+DRBD+MySQL等 个人比较看好中间件(mysql router 或者 proxysql)+MGR的架构 ...
分类:
其他好文 时间:
2019-08-30 11:21:48
阅读次数:
811
现在用户对商品下单,我们的系统有三个步骤要做: 1.减商品的库存。 2.如果用户有红包,扣掉用户的可用红包。 3.创建一个订单。 情况1:交易系统中扣库存成功,扣红包成功,但是此时由于某种原因(如超时)导致创建订单失败。 问:如何解决数据一致性(C)问题? 答:1.一次创建失败,为提高系统的可用性, ...
分类:
其他好文 时间:
2019-08-23 17:38:57
阅读次数:
86
一、为什么要使用MQ 1. 异步:快速返回 2. 解耦:解除依赖 3. 削峰填谷 二、MQ的缺点 1. 系统可用性降低,因为MQ可能会挂 2. 系统复杂性提高,要考虑消息重复、丢失、顺序等问题 3. 数据一致性问题,生产者并不知道消费者是否真正消费了 三、怎么保证MQ消息不丢失 1. 生产者丢失数据 ...
分类:
其他好文 时间:
2019-08-23 00:23:39
阅读次数:
81
写在前面 redis辣么多数据结构,这么多命令,具体一点,都可以应用在什么场景呢?用来解决什么具体的问题? 分布式锁 redis是网络单线程的,它只有一个线程负责接受请求,这个特性即降低了redis本身的开发成本,也提高了redis的可用性。 分布式环境下,数据一致性问题一直是一个比较重要的话题,分 ...
分类:
其他好文 时间:
2019-08-22 19:21:10
阅读次数:
110
MySQL 5.6 版本引入了GTID功能,使得MySQL在主从复制数据一致性和数据安全方面有了巨大的提升,然而对于已经存在的基于binlog+position方式复制的MySQL集群,想要开启GTID,必须要停业务,重启MySQL,这一过程是很不友好的。 首先从重启MySQL来介绍,开启、关闭、重 ...
分类:
数据库 时间:
2019-08-21 14:00:38
阅读次数:
181
保证分布式系统数据一致性的6种方案问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。 ...
分类:
其他好文 时间:
2019-08-18 19:56:10
阅读次数:
76
MySQL Binlog简介 什么是binlog? 一个二进制日志,用来记录对数据发生或潜在发生更改的SQL语句,并以而进行的形式保存在磁盘中。 binlog 的作用? 最主要有3个用途: 数据复制(主从同步) Mysql 的Master Slave协议,让Slave可以通过监听binlog实现数据 ...
分类:
编程语言 时间:
2019-08-10 00:00:12
阅读次数:
185
架构模式: Saga 上下文 您已应用每服务数据库模式。每个服务都有自己的数据库。但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性。例如,假设您正在建立一个客户有信用额度的电子商务商店。申请必须确保新订单不会超过客户的信用额度。由于订单和客户位于不同的数据库中,因此应用程 ...
分类:
其他好文 时间:
2019-08-02 20:47:44
阅读次数:
130
一、并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。 技术上,通常如何进行并发控制? 通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Multi Versio ...
分类:
数据库 时间:
2019-07-31 18:31:15
阅读次数:
135
一:序 - 最近在对数据做缓存时候,会涉及到如何保证 数据库/Redis 一致性问题。 - 刚好今天来总结下 一致性问题 产生的问题,和可能存在的解决方案。 二:(更新策略)- <!--?xml version="1.0" encoding="UTF-8"?--> 先更新数据库,后更新缓存 - 产生 ...
分类:
数据库 时间:
2019-07-30 15:50:21
阅读次数:
321