You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot内嵌ActiveMQ Artemis生产者无法连接问题求助

问题分析与解决方案

问题根源

  1. 内嵌ActiveMQ Artemis默认启用安全认证机制,生产者未提供合法的用户名/密码,导致连接被拒绝。
  2. 需确保内嵌Broker的TCP Acceptor正确配置并生效,允许外部应用(跨JVM/Pod)连接。

具体修复步骤

1. 确保内嵌Broker的TCP Acceptor生效

可通过两种方式配置,任选其一即可:

方式一:通过application.properties直接配置

在消费者应用的配置文件中添加TCP Acceptor配置,无需自定义配置类:

spring.artemis.mode=embedded
spring.artemis.embedded.server-id=54321
spring.artemis.embedded.queues=my-queue-1
spring.artemis.embedded.enabled=true
# 配置TCP acceptor,允许外部机器/Pod连接
spring.artemis.embedded.acceptors=tcp://0.0.0.0:61616

方式二:自定义配置类强化配置

若坚持使用ArtemisConfigurationCustomizer,需确保配置类被Spring扫描到,同时可按需调整安全策略:

package hello;

import org.springframework.boot.autoconfigure.jms.artemis.ArtemisConfigurationCustomizer;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ArtemisConfig implements ArtemisConfigurationCustomizer {
    @Override
    public void customize(org.apache.activemq.artemis.core.config.Configuration configuration) {
        // 添加TCP acceptor
        configuration.addAcceptorConfiguration("remote", "tcp://0.0.0.0:61616");
        // 生产环境建议保留认证,测试环境可临时关闭(不推荐生产使用)
        // configuration.setSecurityEnabled(false);
    }
}

2. 修复生产者的连接认证配置

内嵌Artemis默认用户名admin、密码admin,生产者必须在连接工厂中指定认证信息:

@Bean
public ActiveMQConnectionFactory activeMQConnectionFactory() {
    // 携带默认认证信息创建连接工厂
    ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(
            "tcp://localhost:61616", "admin", "admin");
    return activeMQConnectionFactory;
}

生产环境自定义认证

若需替换默认认证,在消费者应用的application.properties中配置:

spring.artemis.user=prod-user
spring.artemis.password=prod-secure-pass

生产者同步使用对应用户名密码即可。

3. 验证Broker启动状态

启动消费者应用后,检查日志是否包含如下输出,确认TCP Acceptor已成功启动:

AMQ221020: Started EPOLL Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HORNETQ]

生产环境部署注意事项

  • 跨Pod部署时,Broker监听地址需设置为集群可访问的地址(如Service名称、集群内部IP),而非localhost。
  • 建议通过Kubernetes Service暴露Broker服务,生产者通过Service名称连接,避免直接依赖Pod IP。
  • 强制启用安全认证,禁止匿名访问,避免未授权连接。

内容的提问来源于stack exchange,提问作者Franek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:35:04