MQ - RabbitMQ - Spring中配置

<bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <property name="host" value="${rabbitmq.host}" />  
    <property name="port" value="${rabbitmq.port}" />  
    <property name="username" value="${rabbitmq.username}" />  
    <property name="password" value="${rabbitmq.password}" />  
    <property name="virtualHost" value="${rabbitmq.virtualHost}" />
    <!-- 缓存模式   CONNECTION CHANNEL,默认的缓存模式是CHANNEL。
    缓存模式 CHANNEL,connection 是单例的
    当缓存模式是 CONNECTION时(Cache connections and channels within each connection), 队列的自动声明等等 (参考 the section called “Automatic Declaration of Exchanges, Queues and Bindings”) 将不再支持。
    在框架(如. RabbitTemplate) 中使用的通道将会可靠地返回到缓存中.如果在框架外创建了通道 (如.直接访问connection(s)并调用 createChannel() ),
    你必须可靠地返回它们(通过关闭),也许需要在 finally 块中以防止耗尽通道.
     -->
    <property name="cacheMode" value="CONNECTION"/>

    <!-- 默认通道缓存25,多线程环境中,较小的缓存意味着通道的创建和关闭将以很高的速率运行.加大默认缓存大小可避免这种开销
     如果达到了限制,调用线程将会阻塞,直到某个通道可用或者超时, 在后者的情况中,将抛出 AmqpTimeoutException异常.-->
    <property name="channelCacheSize" value="10"/>

    <!-- channelCheckoutTimeout属性. 当此属性的值大于0时(毫秒), channelCacheSize会变成连接上创建通道数目的限制. -->
    <property name="channelCheckoutTimeout" value="200"/>

    <!-- connectionLimit 1.5.5 新增,会限制连接的总数目,当达到限制值时,将 channelCheckoutTimeLimit  来等待空闲连接.如果时间超时了,将抛出 AmqpTimeoutException -->
    <property name="connectionLimit" value="2"/>

    <!-- 默认创建了存活0个线程的线程池,存活时间为60秒. 当需要使用大量连接时,你应该考虑在 CachingConnectionFactory 定制一个 executor .
    然后,同一个executor会用于所有连接,其线程也是共享的. executor的线程池是没有界限的或按预期使用率来设置(通常, 一个连接至少应该有一个线程).
    如果在每个连接上创建了多个channels,那么池的大小会影响并发性,因此一个可变的线程池executor应该是最合适的. -->
    <property name="executor" value="20"/>

</bean>
摘自: https://blog.csdn.net/convict_eva/article/details/52438732
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值