gpt4 book ai didi

java - 具有多线程的 RabbitMQ RPC 生产者

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:05 40 4
gpt4 key购买 nike

如何在多线程环境下实现RPC调用?在此处的基本教程中:https://www.rabbitmq.com/tutorials/tutorial-six-java.html ,在多线程环境中,我看到两个问题:

-如果所有内容都在不同的线程中(包括构造函数),我们为每个线程创建一个回复队列,我不认为这是一个好主意(不是?)

-如果只有 fibonacciRpc.call("4") 在不同的线程中,则回复队列的消费者可以消费错误的回复,而该回复的原始消费者将无限期地等待。

我暂时没有找到任何解决方案,但也许我不明白一些事情。

最佳答案

就我而言:channel.basicConsume(replyQueueName, true, new DefaultConsumer(channel) {} 导致内存中出现大量堆大小,只要我不删除 channel ,它就不会被清除。

根据互联网,您应该创建一个连接。每个线程创建 channel 并为每个 channel 创建单独的队列,并在读取响应后删除队列,如果不这样做,它将在同一 channel 中不断创建新队列。

但是新的 DefaultConsumer 正在创建大量堆内存。

看来要摆脱这个我必须删除 channel 。

关于java - 具有多线程的 RabbitMQ RPC 生产者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42698744/

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