Java 如何在RabbitMQ中将消息传递给消费者
我目前正在开发一个使用RabbitMQ消息代理的应用程序。我对消息传递的工作方式感到困惑,我已经查阅了他们的官方文件,但无法澄清我的担忧 假设我的应用程序可以从两个队列获取消息,对于队列A,生产者直接将消息推送到该队列,队列B通过交换获取消息。我的问题是,如果同时有来自队列A和队列B的消息发送给消费者,消费者将如何消费这些消息?按顺序或通过创建多个并行线程Java 如何在RabbitMQ中将消息传递给消费者,java,rabbitmq,Java,Rabbitmq,我目前正在开发一个使用RabbitMQ消息代理的应用程序。我对消息传递的工作方式感到困惑,我已经查阅了他们的官方文件,但无法澄清我的担忧 假设我的应用程序可以从两个队列获取消息,对于队列A,生产者直接将消息推送到该队列,队列B通过交换获取消息。我的问题是,如果同时有来自队列A和队列B的消息发送给消费者,消费者将如何消费这些消息?按顺序或通过创建多个并行线程 如果我的主线程负责读取消息,那么让主线程进入睡眠状态会停止消费队列中的消息吗?我的意思是,只要主线程处于睡眠状态,rabbitMQ就会停止向
如果我的主线程负责读取消息,那么让主线程进入睡眠状态会停止消费队列中的消息吗?我的意思是,只要主线程处于睡眠状态,rabbitMQ就会停止向使用者推送消息吗?到目前为止,我还没有使用使用者ACK,我正在尝试通过让主线程休眠所需的时间来停止消息消费。RabbitMQ使用者只能消费单个队列中的消息。RabbitMQ使用者使用来自队列的消息有两种机制
rabbitmq服务器
负责在队列中有消息时将消息推送到使用者。可以使用基本\u qos
配置控制发送给消费者的消息数量。信息可以自动确认,也可以由消费者确认rabbitmq服务器
。一次只能请求一条消息当使用者使用
push
机制进行连接时,使用者会运行IO循环,因此当您运行长时间运行的作业时,长时间运行的作业可能会阻碍使用者到rabbitmq服务器的心跳。处理此问题的一种方法是在单独的线程上运行长时间运行的作业。RabbitMQ使用者只能使用来自单个队列的消息。RabbitMQ使用者使用来自队列的消息有两种机制
rabbitmq服务器
负责在队列中有消息时将消息推送到使用者。可以使用基本\u qos
配置控制发送给消费者的消息数量。信息可以自动确认,也可以由消费者确认rabbitmq服务器
。一次只能请求一条消息push
机制进行连接时,使用者会运行IO循环,因此当您运行长时间运行的作业时,长时间运行的作业可能会阻碍使用者到rabbitmq服务器的心跳。处理此问题的一种方法是在单独的线程上运行长时间运行的作业