ThreadPoolExecutor + RabbitMQ

来源:互联网 发布:多线程数据共享 编辑:程序博客网 时间:2024/04/29 18:44

对于一个基于消息驱动的应用,线程池和消息队列总是少不了的。线程池ThreadPoolExecutor是Java自带的,利用线程池来生产/消费消息。消息队列有很多选择,这里先尝试一下RabbitMQ


1,安装RabbitMQ服务

yum install erlang

yum install rabbitmq-server

因为RabbitMQ是Erlang开发的,故安装过程将安装一些Erlang环境


2,配置RabbitMQ服务

一般RabbitMQ的默认配置即可工作,如需个性化设置可以参考http://www.rabbitmq.com/configure.html

RabbitMQ默认服务端口为5672,需要在防火墙中将此端口开放,以免其他机器上的client无法访问


3,RabbitMQ服务

service rabbitmq-server start

service rabbitmq-server stop

RabbitMQ服务的管理可以参考 http://www.rabbitmq.com/admin-guide.html


4,下载RabbitMQ的Java client包

http://www.rabbitmq.com/java-client.html


5,编写测试程序

略......


6,测试结果

Consumers和Products分别跑在同一WLAN网络中不同机器上,利用线程池起了4对Consumer/Product,每对Consumer共产生/消费100W条消息(消息长度约56字节)

通过400W条消息来测试一下RabbitMQ的稳定性和性能

Product0 cost : 981.517

Product1 cost : 993.353

Product3 cost : 1008.149

Product2 cost : 1010.612


RabbitMQ真的蛮简单,I like it!



原创粉丝点击