RabbitMQ的功能实现
来源:互联网 发布:apache mina框架 编辑:程序博客网 时间:2024/05/21 10:56
1.消息通知
因为queue的默认情况下是给消费者轮流分发消息的。当一个消费者挂了之后,还是会向它发送消息,这样的的话,就会造成消息的丢失。为了解决这个问题,RabbitMQ的方案是,设置参数,当消息发送给消费者后,消费者会回应queue。当queue收到信号后,才会把queue中的message删除。
boolean autoAck=false;//当autoAck为false的时候,当消费都收到信息后,会回复队列,我收到信息了。这样就不会造成队列的消息流失。channel.basicConsume(QUEUE_NAME, autoAck, consumer);
2.消息持久
刚刚解决了queue与消费者之间的消息丢失问题,但是如果RabbitMQ挂了,也会把queue中的消息丢失。所以在rabbitMQ要做消息的持久化。当RabbitMQ挂了之后restart,现从硬盘中读取数据。
设置方案:
boolean durable = true;channel.queueDeclare("hello", durable, false, false, null);注意:
当rabbitMQ有名这hello的队列后,就不会更改了。如果更改的话会报错
3.消息失败分发
当autoACk的值为false的时候,同时consumer也很忙在处理事情。RabbitMQ把消息分发给consumer的话。这样也会造成消息的丢失。那么我们可以通过设置,记RabbitMQ把消息分发给有空的cumsuer
int prefetchCount = 1;channel.basicQos(prefetchCount);
0 0
- RabbitMQ的功能实现
- rabbitmq的队列服务功能
- C#实现rabbitmq 延迟队列功能
- 使用AMQP实现消息功能---RabbitMQ
- RabbitMQ(二) java简单的实现RabbitMQ
- java简单的实现RabbitMQ
- java简单的实现RabbitMQ
- RabbitMQ第二篇:java简单的实现RabbitMQ
- rabbitMQ第二篇:java简单的实现RabbitMQ
- rabbitMQ第二篇:java简单的实现RabbitMQ
- RabbitMQ(七)用RabbitMQ实现分布式系统里的信号量控制 -- Distributed Semaphores with RabbitMQ
- RabbitMq的几种方式的实现
- rabbitmq的通过api实现的demo
- rabbitmq 集群功能讲解
- rabbitmq 集群功能讲解
- java实现rabbitmq消息的发送接受
- java实现rabbitmq消息的发送接受
- 使用RabbitMQ实现带权限的Routing
- Swift 3.0 使用CoreData兼容iOS9和iOS10的CoreData实例
- ijKPlayer - 视频直播
- 表格排序的实现
- iOS WebViewJavascriptBridge 的使用
- 成绩处理
- RabbitMQ的功能实现
- html显示中文及python文件编码问题!
- rem、px、em(手机端h5页面屏幕适配的几种方法)
- 广告的加载
- 第十一周趣味取小数
- IOS开发常见的宏定义
- jQuery实现图片的隐藏、显示、切换
- Mysql5.5 启动 报unknown option '--skip-locking'
- 解决Eclipse导入项目中注释乱码问题