redis作简单mq的高可用

redis集群环境redis

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

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

解决:部署

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

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

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

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

相关文章
相关标签/搜索