32.1.2 Artemis支持

Apache Artemis成立于2015年,那时HornetQ刚捐给Apache基金会,确保别使用了过期的HornetQ支持。
不要尝试同时使用Artemis和HornetQ。

如果发现classpath下存在Artemis依赖,Spring Boot将自动配置一个ConnectionFactory。如果需要broker,Spring Boot将启动内嵌的broker,并对其自动配置(除非模式mode属性被显式设置)。支持的modes包括:embedded(明确需要内嵌broker,如果classpath下不存在则出错),native(使用netty传输协议连接broker)。当配置native模式,Spring Boot将配置一个连接broker的ConnectionFactory,该broker使用默认的设置运行在本地机器。
使用spring-boot-starter-artemis ‘Starter’,则连接已存在的Artemis实例及Spring设施集成JMS所需依赖都会提供,添加org.apache.activemq:artemis-jms-server依赖,你可以使用内嵌模式。

Artemis配置控制在外部配置属性spring.artemis.*中,例如,在application.properties声明以下片段:

  1. spring.artemis.mode=native
  2. spring.artemis.host=192.168.1.210
  3. spring.artemis.port=9876
  4. spring.artemis.user=admin
  5. spring.artemis.password=secret

当使用内嵌模式时,你可以选择是否启用持久化,及目的地列表。这些可以通过逗号分割的列表来指定,也可以分别定义org.apache.activemq.artemis.jms.server.config.JMSQueueConfigurationorg.apache.activemq.artemis.jms.server.config.TopicConfiguration类型的bean来进一步配置队列和topic,具体支持选项可参考ArtemisProperties