如何创建和管理ActiveMQ Artemis主题

3

这里有一个原始的例子,展示了如何使用点对点发送和接收消息来嵌入式Artemis代理。该示例是自包含的,不需要通过XML或其他外部文件进行进一步配置。

在此示例中,使用以下代码创建了一个新的核心队列:

QueueConfiguration coreQueueConfiguration = new QueueConfiguration(QUEUE_NAME);
coreQueueConfiguration.setAddress(QUEUE_NAME)
 .setName(QUEUE_NAME)
 .setDurable(true)
 .setRoutingType(RoutingType.ANYCAST);
configuration.addQueueConfiguration(coreQueueConfiguration);

Configuration 是一个被代理使用来配置自身的类。

org.apache.activemq.artemis.api.core.QueueConfiguration 类由 Artemis 项目提供以创建队列。

然而,我无法找到任何关于如何通过编程方式(不使用 XML 或其他文件)在嵌入式 Artemis 代理中创建/删除和管理 JMS 主题的示例。

问题:如何通过编程方式管理 Artemis 主题?

1个回答

2

从技术角度来说,在ActiveMQ Artemis中,不存在可以直接管理的“JMS主题”这个概念。只有地址、队列和路由类型。这些是代理程序用于实现代理程序支持的所有不同协议的所有语义的核心资源。

一个JMS主题最简单的表示形式是配置为支持多播队列的地址。以您的示例为基础:

CoreAddressConfiguration coreAddressConfiguration = new CoreAddressConfiguration();
coreAddressConfiguration
   .setName("myTopic")
   .addRoutingType(RoutingType.MULTICAST);
configuration.addAddressConfiguration(coreAddressConfiguration);

您可以在JMS映射文档中了解有关JMS语义如何映射到核心资源的更多信息。
一旦代理程序上的配置完成,您可以使用JNDI属性中的topic.前缀为您的JMS客户端配置JNDI,如JNDI文档中所述。

1
一如既往的好答案,感谢你,Justin! - ipolevoy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接