如何创建和管理 ActiveMQ Artemis 主题

How to create and administer ActiveMQ Artemis topics

Here is a primitive example 嵌入式 Artemis 代理使用点对点发送和接收消息 send/receive。此示例是独立的,不需要使用 XML 或任何其他外部文件进行进一步配置。

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

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

Configuration 是代理用来配置自身的 class。

class org.apache.activemq.artemis.api.core.QueueConfiguration 由 Artemis 项目提供,用于创建队列。

但是,我找不到任何示例来说明如何以编程方式(没有 XML 或任何其他文件)create/delete 以及如何在嵌入式 Artemis 代理中管理 JMS 主题。

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

从技术上讲,ActiveMQ Artemis 中没有“JMS 主题”这样可以直接管理的东西。只有地址、队列和路由类型。这些是代理用来为代理支持的所有不同协议实现所有语义的核心资源。

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

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

您可以在 JMS mapping documentation 中阅读有关 JMS 语义如何映射到核心资源的更多信息。

在代理上完成配置后,您可以使用 JNDI 属性中的 topic. 前缀为 JMS 客户端配置 JNDI,如 the JNDI documentation.

中所述