java—对每个请求和每个会话发出临时队列会影响性能吗?

unftdfkk  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(309)

我一直在研究一些服务器端java,它使用jms与apollomq消息代理接口。客户端通过执行以下操作与此服务器进行同步请求:
创建用于接收响应的临时队列
将请求发送到标准请求队列,其中“reply to”指向新的临时队列
等待临时队列上的响应
删除临时队列并重复
对于messagebroker来说,为每个请求发出一个新的临时队列可能代价高昂,并且可能会为每个请求引入一个额外的往返,以便首先创建临时目的地。我不想花太多时间来验证我自己,我有点希望有人知道可以证实这一直觉。最好是为每个客户端会话创建一个临时队列,并使用消息/相关id来匹配对请求的响应?

nmpmafwu

nmpmafwu1#

使用correlationids涉及到在消息队列上使用选择器-这比为请求-响应目的创建临时队列慢(请参阅http://camel.apache.org/jms.html 用于比较各种选项)。

s3fp2yjn

s3fp2yjn2#

从性能的Angular 来看:messagebroker是为发送/接收消息或创建/删除队列而优化的吗?
同样地,数据库也没有优化到动态创建和删除表;它是insert/update/delete。
所以我会走“相关id”的路。
更新
这并不一定意味着将响应与请求放在同一队列中。每个客户机/会话可以有一个队列。

相关问题