Apache ActiveMQ AMQP Spring 启动 AWS

Apache ActiveMQ AMQP Spring Boot AWS

我有一个使用 AMQP 协议的 ActiveMQ AWS 服务。 AWS returns 对我来说:

failover:(amqp+ssl://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671,amqp+ssl://b-ca138bd4-e6c4-4596-8329-f11bebf40111-2.mq.us-east-1.amazonaws.com:5671)

我正在尝试使用 Spring 启动与该端点的连接,但我遇到了很多问题。我尝试了很多方法,但我无法使用 Spring.

连接到 ActiveMQ

我试过:

创建许多配置 Bean,例如:

@Bean
fun connectionFactory(): ConnectionFactory {
    val activeMQConnectionFactory = ActiveMQConnectionFactory()
    activeMQConnectionFactory.brokerURL = "amqp+ssl://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671"
    activeMQConnectionFactory.trustedPackages = listOf("com.rappi.scaffolding")
    return activeMQConnectionFactory
}

并使用许多依赖项,例如:

implementation("org.apache.activemq:activemq-spring:5.17.0")
implementation("org.springframework:spring-jms")

implementation("org.springframework.boot:spring-boot-starter-artemis")

但我无法建立连接。此时我看到这个错误:

Reason: java.io.IOException: Transport scheme NOT recognized: [amqp+ssl]

Java 或 Kotlin 或指南中有一些示例可以使用 AMQP 协议将我连接到 AWS?我在 Google.

中没有找到任何内容

我读过使用 QPid 的内容,但它对我不起作用。

我发现很多使用 Rabbit 的示例,但不是 Apache ActiveMQ 协议 amqp+ssl。

终于可以使用 Bean 了:

@Bean
    fun connectionFactory(): ConnectionFactory {
        return JmsConnectionFactory(
            "failover:(amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671,amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-2.mq.us-east-1.amazonaws.com:5671)").apply {
            this.username = user
            this.password = passwordAQ
        }

您的代码和配置有很多问题。

首先,您用于客户端的URL不正确。 amqp+ssl 方案对任何客户端都无效。这是用于在 ActiveMQ 代理配置中定义连接器的方案。

其次,你的依赖是错误的。就客户而言,您只需要:

implementation("org.apache.qpid:qpid-jms-client:1.6.0")

当然,如果您使用 Spring,您将需要所有相关的 Spring 依赖项,但就客户端本身而言,这就是您所需要的。

第三,你的代码有误。你应该使用这样的东西:

@Bean
fun connectionFactory(): ConnectionFactory {
    return new org.apache.qpid.jms.JmsConnectionFactory("failover:(amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671,amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-2.mq.us-east-1.amazonaws.com:5671)");
}