activemq - 使用虚拟主题时,生产者应该发送到常规主题还是虚拟主题?
问题描述
现在我们发布到常规主题并能够使用来自虚拟主题的消息。是合法的方式吗?
不幸的是,从文档中并不清楚这种方法的正确性。
但是,我们注意到一些奇怪的行为。
如果没问题,那么我们想按现在的样子使用它。否则,我们需要更改所有队列中的主题名称,确保在没有待处理消息之前。
解决方案
好的,我在Active MQ in Action一书中找到了答案:
需要一些命名约定以允许虚拟主题正确运行。首先,要确定将主题视为虚拟主题,主题名称应始终遵循
VirtualTopic.<topic name>
. 所以如果你想为一个名为 orders 的主题创建一个虚拟主题,你需要创建一个名为 的目的地VirtualTopic.orders
。这意味着发布者将消息发送到名为 的主题VirtualTopic.orders
。为了从虚拟主题支持的队列中消费,消费者必须订阅名称遵循模式的队列Consumer.<consumer name>.VirtualTopic.<virtual topic name>
。
推荐阅读
- python - Python:如何在保存了原始索引的列表的所有元素之间获得差异
- php - 当我尝试在购物车中添加产品时,将显示错误。产品将添加到购物车中,但购物车未显示。试图获取非对象的属性“图像”
- python - AWS - Codebuild 失败的问题
- linux - CMake 项目未通过 Visual Studio 2022 在 WSL2 上加载
- python - 以编程方式设置气流中的连接/变量
- vb.net - 如何在 vb.net 中为背景色属性设置透明度效果
- mysql - 添加具有数字名称的列时出错
- django - 在 django orm 中使用 annotate() 在 MariaDB 服务器上运行 hasrsine 公式
- python - 为什么'return'不会破坏嵌套在函数中的循环?
- python - 如何保留 Azure Cosmos DB 连续令牌