我正在尝试在本地将服务与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("")