哪个更好CachingConnectionFactory.CacheMode Spring AMQP中的连接或通道

时间:2017-06-26 15:24:31

标签: spring-amqp spring-rabbit spring-rabbitmq

您好我一直在使用Spring AMQP与从CachingConnectionFactory获得的连接,其属性如下所示

<bean id="connectionFactory"
    class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <constructor-arg value="rabbit-server-fqdn" />
    <property name="virtualHost" value="some-vhost" />
    <property name="username" value="username" />
    <property name="password" value="password " />
   <property name="channelCacheSize" value="25" />
</bean>

现在我需要将模式更改为Connection,因为我需要检查打开连接

   <bean id="connectionFactory"
    class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <constructor-arg value="rabbit-server-fqdn" />
    <property name="virtualHost" value="some-vhost" />
    <property name="username" value="username" />
    <property name="password" value="password " />
    <property name="cacheMode" value="CONNECTION" />
   <property name="channelCacheSize" value="25" />
</bean>

所以 Q1。 channelCacheSize会起作用吗? Q2。 CachingConnectionFactory中的默认连接池大小是多少? Q3。我需要设置额外的属性吗?

1 个答案:

答案 0 :(得分:3)

// No GroupSequenceProvider here public class ParentDto { @Valid private ChildDto childDto; ... } 更好,因为您不需要为每个呼叫创建新连接,而是重用共享呼叫。

Reference Manual有很多关于此事的事实。其中一个是你何时需要CHANNEL模式:

  

在某些环境中使用单独的连接可能很有用,例如从HA群集中使用,与负载均衡器一起使用,以连接到不同的群集成员。

通过注入CONNECTION的{​​{1}},仍然可以跟踪共享连接的打开/关闭状态。