Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance ActiveMQ—创建临时队列的成本_Performance_Activemq - Fatal编程技术网

Performance ActiveMQ—创建临时队列的成本

Performance ActiveMQ—创建临时队列的成本,performance,activemq,Performance,Activemq,我想使用ActiveMQ中动态生成的队列来序列化对多个源生成的事件的处理 我需要这样做,以确保同一记录上的更新永远不会发生冲突 问题是,对于与同一记录相关的每组更新,我需要一个不同的队列 理论上可能有数百万条记录,当然,我不想创建数百万条队列 理想情况下,应该在必要时创建队列,并在所有更新完成时销毁队列 触发更新的事件是异步的,但仍然是相关的。我知道当事情发生时,会同时触发多个事件。 这实际上是一个小型的异步但相关的更新突发事件。 一段时间后,可以删除生成的队列 我知道创建和删除队列是有成本的,

我想使用ActiveMQ中动态生成的队列来序列化对多个源生成的事件的处理

我需要这样做,以确保同一记录上的更新永远不会发生冲突

问题是,对于与同一记录相关的每组更新,我需要一个不同的队列

理论上可能有数百万条记录,当然,我不想创建数百万条队列

理想情况下,应该在必要时创建队列,并在所有更新完成时销毁队列

触发更新的事件是异步的,但仍然是相关的。我知道当事情发生时,会同时触发多个事件。 这实际上是一个小型的异步但相关的更新突发事件。 一段时间后,可以删除生成的队列


我知道创建和删除队列是有成本的,但我是否正确地认为,在峰值期间,以不高于每秒几个队列的速度生成和删除这些队列的成本,不会产生性能问题吗?

临时队列会有成本,但通常不会太高,除非您在app server和broker之间有很高的网络延迟,而且您应该没事

不过,临时队列有一些限制。例如,一旦创建的连接关闭,它们将被删除。因此,如果希望在系统重新启动后恢复作业,请不要依赖临时队列。我建议不要以每秒多个速率动态创建常规队列。该系统不是为此而设计的


通常,在处理一组相关消息时,您要做的是利用。这样,您就可以使用不依赖于生产者/临时队列创建者连接的单个队列。

我可能错误地使用了名称“临时”。我只是想在短时间内删除它们。它们不能是在连接关闭时删除的临时队列。我将尝试使用消息组。话说回来,回到我最初的问题,如果我创建和删除真实队列(不是临时的),这会不会带来太多成本?创建目的地时会发生一些事情。与咨询系统类似,在该系统中,每个目的地都会创建一些主题,当新的消费者/生产者离开/离开、统计测量等时会发送消息。另一方面,也有可能关闭咨询并自动垃圾收集未使用的队列。同样,这不是使用ActiveMQ的预期方式,但您可能会侥幸逃脱。基准-您的里程可能会有所不同。