Canal与Zookeeper搭建高可用Canal-Server

(1)使用MQ实时更新Redis缓存

场景: 像订单服务之类的核心业务,如果我们要更新缓存Redis中的数据,一个可行的方法是,启动一个更新订单缓存的服务,接收订单变更的消息队列(Message Queue,MQ)中的消息,然后更新Redis中缓存的订单数据。对应这类核心的数据,使用方通常会非常的多,服务本来就需要向外发送消息,增加一个消息订阅,基本上不会增加额外的开发成本,也不需要对订单服务本身做出任何更改。

对于该架构,我们唯一担心的问题是,如果消息丢失,应该怎么办?因为现在消息时缓存数据的唯一来源,一旦出现消息丢失的问题,缓存力缺少的那条数据就会永远无法补上,所以,必须保证整个消息链条的可靠性,不过,好在现在的MQ集群(比如Kafka或RocketMQ),都拥有高可用性和高可靠性的保证机制,只要能事先正确配置好,就可以满足数据的可靠性要求。 像订单服务这样,由于本来就有现成的数据变更消息可以订阅,因此像这样更新缓存也是一个不错的选择,因为这种方式实现起来比较简单,对于其他模块也完全没有侵入;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值