gpt4 book ai didi

java - spring rabbit 监听输出队列或接收

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:02 28 4
gpt4 key购买 nike

我正在开发一个支持 rabbitmq 的应用程序。所以,我有一个消费者和一个生产者。我需要在两种方式之间做出决定,如何在它们之间建立通信。

第一种方式

public void send(){
//send to consumer and forget
rabbitTemplate.convertAndSend("","routing-key",my object);
//waiting for output queue and messages from consumer
while(true){
//receive something.
if(corellationID==what we need){
//do what we need
break;
}
}
}

第二种方式

public void send(){
//send to consumer and wait for result
Object o=rabbitTemplate.convertSendAndReceive("","routing-key",my object);

}

哪种方式在高负载下工作得更快更稳定?并且可能有另一种更有效的方法来做到这一点。谢谢

最佳答案

第二种方式与第一种方式一样,您必须实现第二种方式已经完成的工作:

  • 创建关联 ID
  • 维护 map
  • 从回复队列中取出消息
  • 将回复消息与生产者相关联
  • ...

顺便说一句,最有效的方法是没有等待回复的线程。因此以异步方式工作:发送消息的线程可能不是接收回复的线程。 Have a look at the documentation

关于java - spring rabbit 监听输出队列或接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29794289/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com