RabbitMQ的几种应用场景

1.A关注B,B发送一条动态,A要能收到推送,或者要朋友圈有显示

2.并发写数据库的时候 ,可以先放mq队列,然后再写数据(比如游戏),同时使用多线程

3.其实很多地方都可以用消息队列,只要你想用基本都能用上,就看需不需要,如果是指普通的小用户量,只需要直接请一个新的线程跑就可以了


4.还有就是日志收集的时候,可以用多个线程去跑,写到MQ,然后再从MQ取出来持久化到(数据库或者别的地方)


MQ里面没有任何业务,只负责传递一个Map对象(里面包含需要的参数)

接收方收到后,从map中取数据,然后做业务,如下图,是mq的一实例:

服务方是一个工程,接收方是另外一个工程。这样实现了生产者和消费者模式,实现了解耦

消费者只需要实现MQ的监听者接口MessageListener,重写onMessage()方法既可


而且MQ可以把消息持久化,能断点续传。。。。




------------------------------------------------------

MQ的安装和添加用户

http://rainbird.blog.51cto.com/211214/525523/

示例里没有一点儿和持久化相关的东东,而这却是笔者最关心的,想想作为消息服务器如果不能保证消息一定被接收到,算什么事儿啊?比着网上狂转的python版本从php-amqp的库里一点一点儿翻,找到了如下持久化的设置:

 

  接收端声明队列和交换机自动建立:

$ch->queue_declare($_QUEUE,false,true,false,false);

第三个参数设置true保证服务器重启后,自动建立队列

第五个参数设置成false防止接收端没连接的时候丢失消息

 $ch->exchange_declare($EXCHANGE, 'direct', false, true, false);

第四个参数设置true保证重启后,自动建立交换机

第五个参数设置false防止接收端断开后,交换机被删除


参看上图片中生产者,里面channel的配置参数,与上面这个对应



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值