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队列重试,超过次数死信队列…实在不行人工干预

大家八股文背的都不一致啊

https://maimai.cn/web/gossip_detail/29782167?src=app&webid=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6Mjk3ODIxNjcsInUiOjE3ODcxMzYzNiwiZWdpZCI6IjcxNGJiODM5NmRkOTRiOTg5MDIxOTQ4ZWYxMzczYTAxIn0.OADwCxqWqWeCt5KUljYuTN0VedJm3X0YtnUz2edvIaw&share_channel=2

以上是关于336请问下mysql redis es 三写 三删 怎么保证数据一致性 失败了怎么会滚的主要内容,如果未能解决你的问题,请参考以下文章

关于Redis批量写入的介绍

docker 配置服务器 Linux + php + nginx + redis + mysql + es + kibana

flink with rabbitmq,sink source mysql redis es

高可用架构设计ES+Redis+MySQL

ES搜索社区

基于MySql,Redis,Mq,ES的高可用方案解析