rabbitmq支持多少隊列 RabbitMQ怎樣能實現多個隊列由一個消費者來接收消息?
RabbitMQ怎樣能實現多個隊列由一個消費者來接收消息?1. 笨拙的方法是循環(huán)。消耗的阻塞監(jiān)視可以設置超時。通過設置較小的超時,可以依次監(jiān)視多個通道,也可以變相監(jiān)視多個隊列。性能要求不是很高,所以可
RabbitMQ怎樣能實現多個隊列由一個消費者來接收消息?
1. 笨拙的方法是循環(huán)。消耗的阻塞監(jiān)視可以設置超時。通過設置較小的超時,可以依次監(jiān)視多個通道,也可以變相監(jiān)視多個隊列。性能要求不是很高,所以可以采用這種方法
2。另一種方法是先取出一個隊列中的消息數,然后在循環(huán)中讀出消息,然后切換到另一個隊列如果所有隊列中都沒有消息,它們將在此循環(huán)中等待
3。有專業(yè)人士的回答,但我還沒有完全理解:
消費者是業(yè)務層的概念,消費或訂閱是AMQP,因此,如果你問消費者是否可以訂閱多個隊列,答案當然是。解決方案也是一種,根據協議的進程,分別向不同的隊列進行查詢。是使用多線程還是事件驅動(單線程)取決于實現。
如果控制多線程的能力不是很強,建議不要使用此方法。太專業(yè)了
4。后來,我仔細考慮了這個問題。也許我可以在應用層重新設計它。我可以將線程池用作只讀消息的多個使用者,而不處理它們。然后將它們發(fā)布到另一個隊列中,并使用一個使用者來處理消息
Rabbitmq從未使用過。在ActiveMQ中,我剛剛測試了可以有多個消費者,消息按順序分發(fā)給不同的消費者,比如消息1到消費者a,消息2到消費者B,消息3到消費者a,消息4到消費者B。。其優(yōu)點是實現了負載均衡。如果消費者B突然掛斷,消費者a可以正常接收。
我明白,如果我說的是錯的,我希望有上帝來糾正它。非常感謝你。