rabbitMq实战
来源:互联网 发布:山东万赢网络怎么样 编辑:程序博客网 时间:2024/06/07 19:57
2017-09-29 17:00
在安装RabbitMQ服务器包时,服务器不会默认启动为守护进程。在系统启动时默认启动守护进程,作为管理员运行: chkconfig rabbitmq-server on
首先下载 php-amqplib
1.启动及关闭
/sbin/service rabbitmq-server stop/start/etc
2.添加用户操作
rabbitmqctl add_user rollen root rabbitmqctl set_user_tags rollen administrator rabbitmqctl set_permissions -p / rollen ".*" ".*" ".*"
3.连接操作需要注意的地方
地址 github
//基于yii2-queue扩展 就是因为没把queueName,exchangeName 带上,蛋疼了好久。 'queue' => [ 'class' => \yii\queue\amqp\Queue::class, 'host' => '192.168.148.129', 'port' => 5672, 'user' => 'test', 'password' => 'root', 'queueName' => 'msgs', 'exchangeName'=>'router', ],
4.设置配置文件
cd /etc/rabbitmq cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/ mv rabbitmq.config.example rabbitmq.config
5.设置用户访问
vi /etc/rabbitmq/rabbitmq.config/** 找到{loopback_users,[]} 将注释去掉*/
6.开启web管理界面
rabbitmq-plugins enable rabbitmq_managementservice rabbitmq-server restart
7.防火墙开放15672端口
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT/etc/rc.d/init.d/iptables save
9.使用的时候遇到的坑
关于exchange 和 messageQueue 的介绍
这是在百度上找到的答案,一开始无法理解,后面做过试验,才知道怎么回事
a)消费者是无法订阅或者获取不存在的MessageQueue中信息。b)消息被Exchange接受以后,如果没有匹配的Queue,则会被丢弃。
解释:主要是b,queue主要是用来存储消息的队列,exchange才是来拿消息的人,和你在声明的时候没有半毛钱关系,并非要监听对应的queue才能拿到消息,只要你的exchange与生产者的exchange对应就ok了,只是之前queue里面的消息(不管是消费的还是未消费的)你都无法接收到,而生产者重新发送消息,这个时候你就可以收到了,这个可以用来做生成者的消息监听(注意:如果你声明的queue与生成者一致,此时两边并不会收到消息,只是rabbit将消息进行了分发)
10.后台运行
nohup php amqp_consumer.php >> /var/log/test.log 2>&1 &
总结
由于最近有个项目需要进行系统间的通信,上级选择了rabbitMq,我们也没辙,开始使用吃奶的力气在学习,越到最后发现,这种解耦的方式确实不错,看来还要继续研究研究。
阅读全文
0 0
- RabbitMQ实战
- RabbitMQ实战
- rabbitMq实战
- rabbitmq实战(广播模式)
- rabbitmq实战总结
- SpringBoot项目实战--RabbitMQ
- RabbitMQ实战基础
- centos6.3安装rabbitmq实战
- RabbitMQ 实战教程(一)
- RabbitMQ .NET Client 实战实验
- 消息中间件RabbitMQ-实战一
- NET下RabbitMQ实践[实战篇]
- NET下RabbitMQ实践[实战篇]
- spring boot实战(第十一篇)初识RabbitMQ
- spring boot实战(第十二篇)整合RabbitMQ
- RabbitMQ 实战教程(二) 工作队列
- RabbitMQ 实战教程(三) 发布/订阅
- RabbitMQ 实战教程(四) 路由
- 请求的链式处理——职责链模式(二)
- 机器学习技法-01-3-Standard Large-Margin Problem
- Intellij IDEA快捷生成常用代码
- [HNOI2004]宠物收养场
- 欢迎使用CSDN-markdown编辑器
- rabbitMq实战
- Android ------context 详解
- Mybatis使用常见错误及原因
- 什么是css权重
- 使用HttpClient调用CFX WebService
- 谈谈JPA-04-JPA的常用API
- MyEclipse2017 CI 7破解
- 如何显示一副超大图像
- 32.Nginx HTTP之ngx_http_handler函数