AWS AMQP+带vertx的SSL连接



我正在尝试在本地将服务与activemQ连接,我正在尝试使用此连接:

fun start(vertx: Vertx, address: String): Single<MQServerConnection> {
val options: AmqpClientOptions = AmqpClientOptions()
.setHost("localhost")
.setPort(5672)
logger.info("ACTIVE_MQ_PROVIDER_STARTING_IN_THREAD_[" + Thread.currentThread().name + "]")
return AmqpClient.create(vertx, options).rxConnect().flatMap { amqpConnection ->
amqpConnection.rxCreateAnonymousSender().flatMap { responseSender ->
amqpConnection.rxCreateReceiver(address).map { receiver ->
MQServerConnection(amqpConnection, responseSender, receiver)
}
}
}
}

其中

data class MQServerConnection(
val amqpConnection: AmqpConnection,
val amqpSender: AmqpSender,
val amqpReceiver: AmqpReceiver
)

而且效果很好。

现在我正在尝试使用AWS服务,但它返回给我:

failover:(amqp+ssl://b-4eb4c78c-048b-436c-941e-31250830323e-1.mq.us-east-1.amazonaws.com:5671,amqp+ssl://b-4eb4c78c-048b-436c-941e-31250830323e-2.mq.us-east-1.amazonaws.com:5671)

我不知道如何发送HOST而不是localhost

并指示端口。

问候

AmqpClientOptions的ssl属性对于AMQPS必须为true,即

val options: AmqpClientOptions = AmqpClientOptions()
.setHost("b-4eb4c78c-048b-436c-941e-31250830323e-1.mq.us-east-1.amazonaws.com")
.setPort(5671)
.setSsl(true)
.setUsername("admin")
.setPassword("admin")
//This is required only if the AWS service uses a self-signed certificate
.setTrustAll(true)
//This is required only if the AWS service uses a certificate with a CN that doesn't match the hostname
.setHostnameVerificationAlgorithm("")

最新更新