336请问下mysql redis es 三写 三删 怎么保证数据一致性 失败了怎么会滚
Posted huoyingfans
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了336请问下mysql redis es 三写 三删 怎么保证数据一致性 失败了怎么会滚相关的知识,希望对你有一定的参考价值。
叫点啥好
字节跳动员工
走最终一致性啊。db提交后用 canal 之类的组件,把binlog发送到mq。拿异构数据同步工具搭两条同步链路,从 mq 取数据,分别写进redis、es
只要涉及到1个以上的系统就没有绝对强一致性
为啥要保证一致性 直接监控错误然后补偿就行了,涉及到实际写操作时一律以mysql数据为准
写前日志,异常重试,幂等
没有保证绝对一致的方法
用事务消息同步es,保证实时性和一致性,用延迟消息同步redis+缓存常驻redis保证一致性
准确来说是很难做的。最简单的确实是最终一致性。。不然别说三写了。双写一般人都要gg
楼上说的没问题了,现在业务这么解决的。
cannal模拟监控binlog数据变动,mq队列重试,超过次数死信队列…实在不行人工干预
大家八股文背的都不一致啊
以上是关于336请问下mysql redis es 三写 三删 怎么保证数据一致性 失败了怎么会滚的主要内容,如果未能解决你的问题,请参考以下文章
docker 配置服务器 Linux + php + nginx + redis + mysql + es + kibana