分布式一致性

缓存与数据库一致

缓存与数据库出现不一致,往往是因为主从同步延迟导致的,一种解决方案是,在写主库时,待主从同步完成后,再清除缓存,可以避免由于延迟导致从库的脏数据载入缓存,但是这样会延长更新操作的时长,影响更新效率,从而影响系统吞吐量。可以借助binlog或其它方式来异步清除缓存,或者在主库有更新,清除缓存后,从主库读取数据。

主从一致

主从不一致是主从同步延迟造成的,利用缓存可以防止读脏数据的问题。即通过缓存记录主库更新事件,事件过期时间设定为主从同步延迟的时间,(事件key可以用库、表、主键拼装)。当有读请求时,先读缓存看是否有主库更新事件,如果有则读主库,否则读从库。

双主一致

双主分两种情况,一种是双主并行作业,另一种是其中一个主作为备份。对于第一种情况,不一致主要是两台主库同时插入记录容易出现自增主键冲突的问题,解决方案是上游生成id避免冲突。第二种情况,出现不一致是因为切换到备份库时可能有同步延迟,解决办法是,用内网dns监测,在同步完成后再进行切换。

session一致

session一致性问题是在WebServer水平扩展的分布式环境下,从不同webserver读取到的session是否一致的。最佳的解决方案是,在后端用数据库或缓存统一存储,即将session存储在后端的存储层(数据库或缓存)中,这样webserver无论重启还是扩容,都不会造成session丢失。

相关推荐
刘~浪地球33 分钟前
消息队列--Kafka 生产环境最佳实践
分布式·kafka·linq
juniperhan2 小时前
Flink 系列第8篇:Flink Checkpoint 全解析(原理+流程+配置+优化)
大数据·分布式·flink
lvyuanj2 小时前
zookeeper_cluster
分布式·zookeeper·云原生
嵌入式老牛3 小时前
SST专题3-1 基于光分路器的MMC分布式控制系统架构(二)
分布式·电力电子·mmc·固态变压器
刘~浪地球3 小时前
消息队列--RabbitMQ 高可用集群部署
分布式·rabbitmq·ruby
Albert Edison5 小时前
【RabbitMQ】快速入门
java·分布式·rabbitmq
想你依然心痛5 小时前
HarmonyOS 5.0医疗健康开发实战:构建分布式健康监测与AI预警系统
人工智能·分布式·harmonyos
青春不流名6 小时前
kafka 集成OAUTHBEARER认证的例子
分布式·kafka
洛豳枭薰6 小时前
kafka重平衡导致的消息重复消费或者消息丢失
分布式·kafka
rannn_1116 小时前
【Redis|高级篇1】分布式缓存|持久化(RDB、AOF)、主从集群、哨兵、分片集群
java·redis·分布式·后端·缓存