DB数据变更缓存分布式更新的zk分布式锁解决方案
KafkaConsumer kafak消费线程,DB数据变更后,将消息推送到kafka topic,由消费线程进行消费
属性
1、ConsumerConnector 封装客户端连接,通过Consumer.createJavaConsumerConnector进行创建
2、ConsumerConfig 消费者配置类,构造函数通过Properties props入参传入
zookeeper.connect zk连接地址
group.id 消费者组
zookeeper.session.timeout.ms 心跳间隔时间
zookeeper.sync.time.ms zk集群leader和follower之间同步时间
auto.commit.interval.ms 自动提交的间隔时间
3、KafkaStream 流,代表一个无限的、不断更新的数据集,一个流就是有一个有序的可重放的、支持故障
转移的不可变数据记录序列,其中每个数据记录被定义为键值对。
4、KafkaMessageProcessor 消息处理线程,从kafkaStream 中迭代获取message
1、根据消息变更类型进行信息变更消息处理
2、一般传递业务变更表主键,根据主键从DB获取信息。组装缓存维度数据
3、通过分布式锁防止多应用并发消费覆盖
4、缓存内容增加时间戳,比较当前DB查询数据是否比缓存已有数据的时间版本新旧
5、如果更新或缓存空,保存分布式缓存内容,通过mq广播消息变更jvm本地缓存
6、释放分布式锁
DB数据变更缓存分布式更新的zk分布式锁解决方案
最新推荐文章于 2024-11-04 14:24:15 发布