rabbitmq

1、进程角色说明

  • Name Server:在消息队列RocketMQ版中提供命名服务,更新和发现Broker服务,保存broker和topic

    的路由信息,Name Server通过集群保证高可用

  • Broker: 集群最核心模块,主要负责Topic消息存储、消费者的消费位点管理(消费进度offset)。

    broker通过主备保证分片数据高可用。

9.2、发生消息类型

同步:发送网络请求后会同步等待 Broker 服务器返回结果,支持发送失败重试,适用于比较重要的消息通知场景。

异步:异步发送网络(非局域网)请求,不会阻塞当前线程,支持失败重试,适用于对响应时间要求更高的场景。

单向:单向发送原理和异步一致,但不支持回调。适用于响应时间非常端,对可靠性要求不高的场景,例如日志收集。

9.3、接受消息

集群模式:只允许消息被消费一次,一条具体的消息不会被重复消费,默认行为

广播模式 :消息会被每个消费者同时消费

9.4、队列模式

重试队列:根据时间或异常,达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息。此时,消息队列 RocketMQ 版不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。

死信队列:正常情况下无法被消费的消息称为死信消息

1:不会再被消费者正常消费。

2:有效期与正常消息相同,均为 3 天,3 天后会被自动删除。因此,请在死信消息产生后的 3 天内及时处理。

9.5、消息发送怎么确保0丢失

为什么会丢失:网络故障

12、rabbitmq

12.1、什么是mq?

消息队列,通信的中间件产品

12.2、解耦、异步、削峰是什么?

  • 解耦:解耦是指将系统中的组件或模块之间的依赖关系降低到最低程度,从而提高系统的灵活性和可维护性。
  • 异步:异步指的是操作的执行不需要立即返回结果,而是在后台进行,执行完成后再通知相关的组件或者进行后续的处理。
  • 削峰:减少高峰时期对服务器压力。

12.3、消息队列有什么缺点

  • **系统可用性降低:**系统运行好好的,现在你非要加入个消息队列进去,那消息队列挂了,系统也会挂。
  • 系统复杂度提高 :一致性问题、如何保证消息不被重复消费、如何保证消息可靠性传输等。
  • 一致性问题 :A 系统处理完了直接返回成功了,人都以为你这个请求就成功了, BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,数据就不一致了。

12.4、RabbitMQ与其他mq对比

12.5、AMQP是什么?

AMQP 是一种强大的消息传递协议,用于在应用程序之间进行可靠的异步消息传递,具有标准化、可靠性、灵活性、性能和安全性等特点。

12.6、AMQP模型的几大组件?

  • 交换器 (Exchange):消息代理服务器中用于把消息路由到队列的组件。

  • 队列 (Queue):用来存储消息的数据结构,位于硬盘或内存中。

  • 绑定 (Binding):一套规则,告知交换器消息应该将消息投递给哪个队列。

12.7、如何保证消息的可靠性?

ACK

相关推荐
程序员 小柴1 小时前
RabbitMQ的工作模式
分布式·rabbitmq·ruby
蒋星熠1 小时前
在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置
大数据·linux·hadoop·分布式·ubuntu·docker
小样vvv2 小时前
【分布式】微服务系统中基于 Hystrix 的熔断实现方案
分布式·hystrix·微服务
清风19815 小时前
kafka消息可靠性传输语义
数据库·分布式·kafka
小诸葛的博客5 小时前
Kafka、RocketMQ、Pulsar对比
分布式·kafka·rocketmq
数据智能老司机7 小时前
CockroachDB权威指南——SQL调优
数据库·分布式·架构
数据智能老司机7 小时前
CockroachDB权威指南——应用设计与实现
数据库·分布式·架构
数据智能老司机7 小时前
CockroachDB权威指南——CockroachDB 模式设计
数据库·分布式·架构
RainbowSea1 天前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq