首页 > 其他 > 详细

rabbitmq用于分布式系统

时间:2014-04-07 23:00:21      阅读:907      评论:0      收藏:0      [点我收藏+]

上文介绍了rabbitmq在linux下的安装,这里就简单的介绍一下基于rabbitmq的开发。

rabbitmq是一个分布式的消息中转服务器,其中最核心的api class是Conncetionchannel 代表一个连结和一个数据通道。分布式的消息服务器肯定是要有client和server的。那怎么基于rabbitmq构建一个server呢?

bubuko.com,布布扣
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(userName);
factory.setPassword(password);
factory.setVirtualHost(virtualHost);
factory.setHost(hostName);
factory.setPort(portNumber);
Connection conn = factory.newConnection();
bubuko.com,布布扣

or

ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://userName:password@hostName:portNumber/virtualHost");
Connection conn = factory.newConnection();

上述的代码,创建了一个connnection,开发者可以在一个connnection创建多个channel,channel用于传递、接收消息。

Channel channel = conn.createChannel();

channel使用完毕后要关闭

channel.close();
conn.close();

另外,获取connection时候,consumer线程默认自动分配一个 ExceutorService thread pool,如果你需要自己控制线程池的。你可以如下定义:

ExecutorService es = Executors.newFixedThreadPool(20);
Connection conn = factory.newConnection(es);

但是需要注意的是:当connection shutdown的时候,默认分配的ExecutorService会自动shutdown,用户自己定义的不会shutdown,需要手动shutdown。而且,只用在Consumer回调有严重的性能瓶颈的时候才用这种方式,在平常的使用中,默认的分配更加高效。

 

 

 

 

rabbitmq用于分布式系统,布布扣,bubuko.com

rabbitmq用于分布式系统

原文:http://www.cnblogs.com/babybluevino/p/3650008.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!