0
点赞
收藏
分享

微信扫一扫

RabbitMQ-其他知识

微笑沉默 2022-04-15 阅读 50
rabbitmq

文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一.其他知识点

1.1 幂等性

1.2 优先级队列

场景: 向用户发送短信提醒,根据用户订单规模优先推送.
优先级范围:0-255;越大优先级越高(业界一般允许0-10)

队列中添加优先级范围

Map<String, Object> params = new HashMap(); 
params.put("x-max-priority", 10); // 设置优先级范围0-10
channel.queueDeclare("hello", true, false, false, params); 

消息中添加优先级

AMQP.BasicProperties properties = new AMQP.BasicProperties().builder().priority(5).build();

注意要让生产者批量发消息给MQ,这才有机会去排序.

1.3 惰性队列

场景:
在这里插入图片描述

Map<String, Object> args = new HashMap<String, Object>(); 
args.put("x-queue-mode", "lazy"); 
channel.queueDeclare("myqueue", false, false, false, args); 

二.镜像队列

为了解决:交换机不可复用问题.交换机宕机造成队列消失. 即便是进行过持久化操作,但仍无法避免由于缓存导致的问题:因为消息在发送之后和被写入磁盘井执行刷盘动作之间存在一个短暂却会产生问题的时间窗。
类似于redis主从集群,保证消息不丢失.

三.实现负载高可用

在java中写死了消息队列ip.当该ip挂掉我们就再也无法发送消息.这时需要nginx实现负载均衡.我们只需连接nginx,由nginx实现代理转发.

四.联邦交换机(Federation Exchange)

场景:保证跨地域消息队列数据一致性.降低延迟问题.

docker安装rabbitMQ插件过程

每台机器都要安装

rabbitmq-plugins enable rabbitmq_federation 
rabbitmq-plugins enable rabbitmq_federation_management

在这里插入图片描述

五.联邦队列(Federation Queue)

六.Shovel

在这里插入图片描述
docker安装rabbitMQ插件过程
每台机器安装

rabbitmq-plugins enable rabbitmq_shovel  
rabbitmq-plugins enable rabbitmq_shovel_management 
举报

相关推荐

0 条评论