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 (二) 命令初尝
- RabbitMQ入门
- RabbitMQ入门 .
- RabbitMQ入门
- rabbitMQ入门
- RabbitMQ入门
- rabbitMQ入门
- RabbitMQ 入门
- RabbitMQ入门
- RabbitMQ 入门
- rabbitMQ入门
- RabbitMQ入门
- RabbitMQ入门
- rabbitMQ入门
- RabbitMQ入门
- AMQP和RabbitMQ入门
- AMQP和RabbitMQ入门
- [RabbitMQ+Python入门经典]
- AMQP和RabbitMQ入门
- 支付宝,网银在线,快钱 3大支付接口的集成与对比,统合实现
- HDU 5056 - Boring count
- android官方侧滑菜单DrawerLayout详解
- hdu 4597 记忆化搜索
- hdoj 5045 (dp 状态压缩)
- RabbitMQ 入门
- java基础:基本数据的自动装拆箱
- 问题反思
- find中的-print0和xargs中-0的奥妙
- 前端领域存在“架构师”吗
- win8 安装程序时出现2502 2503错误解决方法
- Mockups
- 解决union all 联合查询,速度慢的问题
- kthread_work和kthread_worker机制