北羽nx 2021-10-12 02:22 采纳率: 33.3%
浏览 137

rabbitMq间隔1秒消费消息问题

假如有这么一个需求,我希望rabbitMQ的队列每秒被消费1条信息,但是有两个消费者轮流消费,也就是
第0秒:第一个消费者输出A
第1秒:第一个消费者输出B
第2秒:第一个消费者输出A
第3秒:第一个消费者输出B

间隔打印一直到消费完毕
如何设置mq或者交换机的属性呢

还有死信队列是干嘛的,网上好多都在说咋用,不知道是干嘛的

  • 写回答

3条回答 默认 最新

  • 老紫竹 2021-10-12 02:33
    关注

    2个消费者,复用一个连接就行

    评论
  • 於黾 2021-10-12 02:34
    关注

    每秒消费几条队列是消费者决定的,不是生产者决定的,也不是队列本身决定的
    队列本身只负责存储队列,可不管谁往里存,谁往外取
    你可以开两个线程,加个锁,同一时间只允许一个线程执行

    评论
    北羽nx 2021-10-12 02:45

    mq不支持间隔1秒消费吗,因为消费者是在不同的服务器上,小功能不太想加分布式锁

    回复
    於黾 回复 北羽nx 2021-10-12 02:52

    你可以这样想:如果mq支持间隔1秒消费,那如果1秒之内有10个请求同时来了,它要怎么处理这些请求呢,阻塞吗,还是返回错误码?

    回复
    北羽nx 回复 於黾 2021-10-12 02:57

    我希望的是阻塞,因为三方接口限流,不阻塞会导致发生错误

    回复
  • 老紫竹 2021-10-12 06:36
    关注

    答案复制过来了

    你这是2个问题,我怀疑
    1、MQ每秒提供1条信息,多了限流
    2、消费者,必须轮流消费

    问题1
    你可以再建一个MQ啊,原始的MQ,信息随便来, 你本地再建一个对外服务的,你自己写个消费者,每秒从原始MQ消费1条,然后放到这个对外的MQ里。

    问题2,
    这个是外部消费者控制,我真的不知道你个服务提供端,怎么限制消费端必须要【循环】?
    难道你要给2个消费者,建2个队列,然后每隔【2秒钟】先后发送1条数据给他们?

    评论
    北羽nx 2021-10-12 07:13

    因为分布式,写一份就要复制多份部署到不同服务器,并不是只有这一个需求,单独为这一个做个服务线程的话不太可行,系统部署在linux上的,没必要【循环】,只要mq固定每秒吐一个数据就行

    回复
编辑
预览

报告相同问题?

问题事件

  • 创建了问题 10月12日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部