redis做简单mq的高可用

redis集群环境

  1. 生产者有多个 消费者有多个 两边随时可增加

  2. redis上消息只会被一个消费者消费,不会有多个订阅者消费同一个消息,简单一对一

解决:

  1. 消费者崩溃问题:RPOPLPUSH保证不会由于程序问题导致消息不丢失。那么这部分中间状态数据如何处理。考虑集群copy到目标队列名称需要根据消费者程序部署unique名,可结合zk来做,当出现程序崩溃,该队列会自动成为可消费队列,消费完成后会被干掉

  2. 为了利用集群,多个队列写,生产者只负责轮训写,消费者轮训读

  3. 生产者崩溃问题,同样有成效记录来补偿中间状态。类似消费者来决定中间状态值的改变。

  4. 考虑redis内存问题,生产者根据队列情况进行阀值控制,避免消费太慢,写入太快

    原文作者:nojava
    原文地址: https://segmentfault.com/a/1190000004054521
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞