rabbitmq 连接、通道及线程池说明和配置

原创 2016年09月05日 11:25:12
<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>

RabbitMQ客户连接池的实现

RabbitMQ客户连接池的实现
  • QQ994406030
  • QQ994406030
  • 2016年11月03日 11:11
  • 5379

Java RabbitMQ 完整示例 带联接断开恢复,发布接收完整示例

Java RabbitMQ 完整示例 带联接断开恢复,发布接收完整示例 import java.io.IOException; import java.util.UUID; ...
  • daonidedie
  • daonidedie
  • 2016年12月02日 16:04
  • 4743

RabbitMQ能打开的最大连接数

RabbitMQ自带了显示能够接受的最大连接数,有2种比较直观的方式: 1. rabbitmqctl命令。 1 2 3 4 5 6 7 8 9 10 11 12 n...
  • huoyunshen88
  • huoyunshen88
  • 2015年01月16日 17:03
  • 19320

RabbitMQ连接池实现方案及源码

  • 2017年11月21日 08:42
  • 262KB
  • 下载

RabbitMQ客户端连接池的原理及源码

  • 2015年04月18日 19:24
  • 261KB
  • 下载

使用Java编写的RabbitMQ连接池方法

  • 2017年11月22日 17:54
  • 4KB
  • 下载

基于Golang实现的Rabbitmq 连接池

原文出处:个人博客地址:http://www.damonyi.cc/?p=11       之前项目中需要写个Python 版本的Agent,里面用到了Rabbitmq,中间遇到了好多坑啊,最主...
  • wangdk789
  • wangdk789
  • 2016年07月01日 16:08
  • 3109

java实现rabbitmq消息的发送接受

本文不介绍amqp和rabbitmq相关知识,请自行网上查阅 本文是基于spring-rabbit中间件来实现消息的发送接受功能 see http://www.rabbitmq.com/tutor...
  • sdyy321
  • sdyy321
  • 2013年07月04日 16:35
  • 80197

java远程连接调用Rabbitmq

打开IDEA创建一个maven工程(Java就可以了)。 pom.xml文件如下
  • coco2d_x2014
  • coco2d_x2014
  • 2017年07月16日 23:58
  • 1198

Spring Boot RabbitMQ快速入门 (2)

Spring Boot RabbitMQ快速入门 (2)Prefetch设置当我们进入RabbitMQ的GUI管理界面, 点入某个队列查看消费者的属性时, 有记录如下 Channel Cons...
  • Solarison
  • Solarison
  • 2017年03月05日 16:30
  • 2277
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rabbitmq 连接、通道及线程池说明和配置
举报原因:
原因补充:

(最多只允许输入30个字)