MQ消息队列
Posted a747895159
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MQ消息队列相关的知识,希望对你有一定的参考价值。
2.为什么要使用rabbitmq
3.使用rabbitmq的场景
4.如何确保消息正确地发送至RabbitMQ? 如何确保消息接收方消费了消息?如何避免消息重复投递或重复消费?
ACK确认机制
设置集群镜像模式
消息补偿机制
5.消息基于什么传输?
7.消息怎么路由?
8.使用RabbitMQ有什么好处?
9.rabbitmq的集群
Kafka 一个最基本的架构认识:由多个 broker 组成,每个 broker 是一个节点;你创建一个 topic,这个 topic 可以划分为多个 partition,每个 partition 可以存在于不同的 broker 上,每个 partition 就放一部分数据。
这就是天然的分布式消息队列,就是说一个 topic 的数据,是分散放在多个机器上的,每个机器就放一部分数据。
写数据的时候,生产者就写 leader,然后 leader 将数据落地写本地磁盘,接着其他 follower 自己主动从 leader 来 pull 数据。一旦所有 follower 同步好数据了,就会发送 ack 给 leader,leader 收到所有 follower 的 ack 之后,就会返回写成功的消息给生产者。(当然,这只是其中一种模式,还可以适当调整这个行为)
消费的时候,只会从 leader 去读,但是只有当一个消息已经被所有 follower 都同步成功返回 ack 的时候,这个消息才会被消费者读到。
11、什么情况下会出现 blackholed 问题?
12、如何防止出现 blackholed 问题?
13、Consumer Cancellation Notification 机制用于什么场景?
14、Basic.Reject 的用法是什么?
15、什么是死信呢?什么样的消息会变成死信呢?
方便我们查看消息失败的原因了
消息被拒绝(basic.reject或basic.nack)并且requeue=false.
消息TTL过期
队列达到最大长度(队列满了,无法再添加数据到mq中)
18、RabbitMQ、kafka之间的比较
1、 RabbitMq比kafka成熟,在可用性上,稳定性上,可靠性上,RabbitMq超过kafka。rabbitMq 延迟度低。
2、 Kafka设计的初衷就是处理日志的,可以看做是一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性(不支持事物)
3、 Kafka的性能(吞吐量、tps)比RabbitMq要强,这篇文章的作者认为,两者在这方面没有可比性。
4.技术上面,使用rabbitMq比kafka 长,两者社区活跃度都高。
以上是关于MQ消息队列的主要内容,如果未能解决你的问题,请参考以下文章