RabbitMQ 入门

来源:互联网 发布:mac切换页面快捷键 编辑:程序博客网 时间:2024/06/07 08:03

RabbitMQ 入门

随着业务的增多, 系统中的服务越来越多, 这就面临系统中服务调用紊乱的问题. 尤其在最近需要做一个任务调度的系统, 在三番思考之后, 决定采用RabbitMQ的消息队列实现任务调度问题.以下简称RMQ

1.下载安装RMQ

下载地址:http://www.rabbitmq.com/download.html

笔者使用的是ubuntu系统, 下载并安装完后, 进入官方的使用文档http://www.rabbitmq.com/install-debian.html

下载安装后, RMQ默认是已经启动的, 当然我们也可以手动进行启动关闭操作,具体命令:

rabbitmqctl 默认产生详细输出。通过”-q”标示可选择安静模式。 
rabbitmqctl -q status 
应用和集群管理 
1.停止RabbitMQ应用,关闭节点 
# rabbitmqctl stop 
2.停止RabbitMQ应用 
# rabbitmqctl stop_app 
3.启动RabbitMQ应用 
# rabbitmqctl start_app 
4.显示RabbitMQ中间件各种信息 
# rabbitmqctl status 
5.重置RabbitMQ节点 
# rabbitmqctl reset 
# rabbitmqctl force_reset 

 

2.Helloword

下载依赖的jar包:http://www.rabbitmq.com/java-client.html

RabbitMQ要实现的是一个典型的生产者消费者案例. 生产者向消息队列不断发送消息, 众多消费者从消息队列中取消息. RabbitMQ的存在, 简单而言就是解决消息队列中的存取问题.

开始码代码.以下是生产者代码:

生产者主要负责每800ms发送一条消息给消息队列.

 

以下是消费者代码:

消费者主要负责从队列从拉取消息.

 

注意到代码中给每个生产者和消费者这使用random命名, 旨在同时启动多个生产者和消费者, 以观察执行效果.

 

 

笔者开了一个生产者,三个消费者,生产者的log大致如:

producer-[1] Sent ‘hello world! 0′
producer-[1] Sent ‘hello world! 1′
producer-[1] Sent ‘hello world! 2′
producer-[1] Sent ‘hello world! 3′
producer-[1] Sent ‘hello world! 4′
producer-[1] Sent ‘hello world! 5′
producer-[1] Sent ‘hello world! 6′
producer-[1] Sent ‘hello world! 7′
producer-[1] Sent ‘hello world! 8′

 

而消费者1的log:

[consumer-1] Waiting for messages. To exit press CTRL+C
[consumer-1] Received ‘hello world! 0′
[consumer-1] Received ‘hello world! 3′
[consumer-1] Received ‘hello world! 6′

 

消费者2的log:

[consumer-2] Waiting for messages. To exit press CTRL+C
[consumer-2] Received ‘hello world! 1′
[consumer-2] Received ‘hello world! 4′
[consumer-2] Received ‘hello world! 7′

 

消费者3的log:

[consumer-3] Waiting for messages. To exit press CTRL+C
[consumer-3] Received ‘hello world! 2′
[consumer-3] Received ‘hello world! 5′
[consumer-3] Received ‘hello world! 8′

 

由上面的结果可以简单的推断, 消息队列向消费者发送消息的时候是从消费者1-消费者n轮流发送的.

 

下一篇:RabbitMQ (二) 命令初尝

javaRabbitMQ后端服务器消息队列
0 0
原创粉丝点击