我已经缩小了我面临的问题的范围,结果发现MessageProducer.send()
当它为特定主题创建时太慢了"replyfeserver"
:
auto producer = context.CreateProducerFromTopic("replyfeserver");
producer->send(textMessage); //it is slow
在这里,send()
偶尔会阻塞长达 55-65 秒——几乎是在 4-5 次调用之后,通常长达 5-15 秒。
但是,如果我使用其他主题,请说"feserver.action.status"
.
auto producer = context.CreateProducerFromTopic("feserver.action.status");
producer->send(textMessage); //it is fast!
现在调用send()
立即返回,在几分之一秒内。我已经尝试send()
过其他几个主题,并且它们都运行得足够快。
这个特定主题可能存在哪些问题"replyfeserver"
?为了诊断问题,我应该查看哪些内容?过去 2 个月我一直在使用这个主题。
我正在使用 XMS C++ API,请假设context
对象是创建会话、目的地、消费者、生产者等的抽象。
我还想知道这两种方法之间是否有任何区别:
xms::Destination dest("topic://replyfeserver");
对比
xms::Destination dest = session.createTopic("replyfeserver");
我尝试了两者,它没有任何区别 - 至少我没有注意到它。