RabbitMQ-Spring AMQP翻译4.1.2——配置基础客户端连接工厂&RabbitConnectionFactoryBean和配置SSL

Posted 小伙很稳健

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ-Spring AMQP翻译4.1.2——配置基础客户端连接工厂&RabbitConnectionFactoryBean和配置SSL相关的知识,希望对你有一定的参考价值。

版本:2.2.4.RELEASE
地址:官方文档

文章目录

配置基础的客户端连接工厂

CachingConnectionFactory使用了Rabbit客户端ConnectionFactory的实例。在CachingConnectionFactory上设置等效属性时,会传递许多配置属性(host, port, userName, password, requestedHeartBeat, and connectionTimeout)。要设置其他属性(例如clientProperties),可以定义Rabbit工厂的一个实例,并通过使用CachingConnectionFactory的相应构造函数提供对它的引用。当像上面一样使用namespace时,你需要提供一个引用来配置connection-factory属性。为了方便起见,提供了一个工厂bean来帮助在Spring应用程序上下文中配置连接工厂,如下一节所述。

    <rabbit:connection-factory id="connectionFactory" connection-factory="rabbitConnectionFactory"/>

4.0.x的客户端默认能够自动恢复。虽然与此功能兼容,但是Spring AMQP有它自己的恢复机制,通常情况下客户端的恢复功能个是不需要的。我们推荐关闭amqp-client自动恢复功能,以避免在broker可用但connection尚未恢复时得到AutoRecoverConnectionNotCurrentlyOpenException 。例如,当在RabbitTemplate中配置RetryTemplate时,甚至在故障切换到集群中的另一个代理时,您可能会注意到此异常。因为自动恢复连接在计时器上恢复使用Spring AMQP的恢复机制可以更快地恢复连接。自1.7.1版本开始,Spring AMQP使amqp-client自动恢复失效,除非显示的创建你自己的RabbitMQ connection factory并把它提供给CachingConnectionFactory。默认情况下,由RabbitConnectionFactoryBean创建的RabbitMQ ConnectionFactory实例也禁用了该选项。

RabbitConnectionFactoryBean和配置SSL

自1.4版本起,提供了RabbitConnectionFactoryBean通过使用依赖注入在底层客户端连接工厂方便的配置SSL。其他setter委托给基础工厂。以前,您必须以编程方式配置SSL选项。下面的例子展示了如何配置RabbitConnectionFactoryBean

<rabbit:connection-factory id="rabbitConnectionFactory"
    connection-factory="clientConnectionFactory"
    host="$host"
    port="$port"
    virtual-host="$vhost"
    username="$username" password="$password" />

<bean id="clientConnectionFactory"
        class="org.springframework.amqp.rabbit.connection.RabbitConnectionFactoryBean">
    <property name="useSSL" value="true" />
    <property name="sslPropertiesLocation" value="file:/secrets/rabbitSSL.properties"/>
</bean>

有关配置SSL的信息,请参阅RabbitMQ文档。省略keyStore和trustStore配置,以便在不进行证书验证的情况下通过SSL进行连接。下一个示例显示如何提供密钥和信任存储配置。
sslPropertiesLocation属性是Spring Resource指向的包含以下键的属性文件的:

keyStore=file:/secret/keycert.p12
trustStore=file:/secret/trustStore
keyStore.passPhrase=secret
trustStore.passPhrase=secret

keyStore和truststore是指向存储的Spring资源。通常,此属性文件由具有读取权限的应用程序的操作系统保护。

从Spring AMQP版本1.5开始,您可以直接在factory bean上设置这些属性。如果同时提供了离散特性和sslPropertiesLocation,则后者中的特性将覆盖离散值。

从版本2.0开始,默认情况下会验证服务器证书,因为它更安全。如果出于某种原因希望跳过此验证,请将工厂bean的skipServerCertificateValidation属性设置为true。从版本2.1开始,RabbitConnectionFactoryBean现在默认调用enableHostnameVerification()。要恢复到以前的行为,请将enableHostnameVerification属性设置为false。

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于RabbitMQ-Spring AMQP翻译4.1.2——配置基础客户端连接工厂&RabbitConnectionFactoryBean和配置SSL的主要内容,如果未能解决你的问题,请参考以下文章

ABP官方文档翻译 4.1 应用服务

使用 AMQP 和 Vert.x 实现微服务间的异步通信

如何在不使用 cv2.warpAffine() 的情况下翻译图像? [Python 3 和 OpenCV 4.1]

翻译: 4.1 多层感知器MLP Multilayer Perceptrons pytorch

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)4.1——编写自己的任务

3GPP TS 23501-g51 中英文对照 | 4.1 General concepts