0


MQ基本使用及重点内容

RabitMQ(消息中间件):

一、使用方法:

1、引入依赖:

2、添加配置:

3、在服务者端注入RabbitTemplate实现消息发送:

4、消费者端添加配置:

5、bean一个Queue对象,交给IOC容器管理:

6、消费者端创建监听类RabbitListener,并交给spring管理:

二、使用MQ的优缺点:

优点:1、异步;2、解耦;3、削峰。(吞吐量提升、故障隔离)

缺点:1、系统可用性降低;2、系统复杂度提高;3、一致性问题。

三、Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?

追求可用性:Kafka、 RocketMQ 、RabbitMQ

追求可靠性:RabbitMQ、RocketMQ

追求吞吐能力:RocketMQ、Kafka

追求消息低延迟:RabbitMQ、Kafka

四、MQ的基本结构:

RabbitMQ中的一些角色:

  • broker:消息队列服务器实体
  • publisher:生产者 发布者
  • consumer:消费者 订阅者
  • exchange个:交换机,负责消息路由,转发消息给队列,注:如果找不到队列,则消息会丢失
  • queue:消息队列载体,存储消息
  • virtualHost:虚拟主机,隔离不同用户|环境的exchange、queue、消息的隔离
  • Routing Key: 路由关键字,exchange根据这个关键字进行消息投递
  • Binding Key:绑定,它的作用就是把exchange和queue按照路由规则绑定起来

五、RabbitMQ的消息模型:

1、普通消息队列;

2、工作消息队列;

3、广播消息队列;

4、路由消息队列;

5、主题消息队列。

六、使用RabbitMQ的场景:

1、服务间异步通信;2、顺序消费;3、定时任务;4、请求削峰。

七、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?

1、发送方确认模式:将信道设置成confirm模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的ID。

2、接收方确认机制:消费者接收每一条消息后都必须进行确认。

八、如何避免消息重复投递或重复消费?

1、在消息生产时,MQ内部针对每条生产者发送的消息生成一个inner-msg-id,作为去重的依据(消息投递失败并重传),避免重复的消息进入队列;

2、在消息消费时,要求消息体中必须要有一个 bizId(对于同一业务全局唯一,如支付ID、订单ID、帖子ID 等)作为去重的依据,避免同一条消息被重复消费。

九、如何保证消息的可靠传输:

希望对大家有帮助,有用的大家可以关注点个赞~~~


本文转载自: https://blog.csdn.net/qq_61116557/article/details/128336154
版权归原作者 _积累沉淀、蜕变成长 所有, 如有侵权,请联系我们删除。

“MQ基本使用及重点内容”的评论:

还没有评论