rabbitMq实战

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_management
service 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值