RabbitMq和Kafka架构异同分析:

rabbitmq:

  1. 架构为生产者-交换机-队列-消费者
  2. 交换机和队列之间通过路由键绑定,即routing key
  3. 消费者通过直接监听队列消费消息
  4. 交换机有四种类型,分别是faount广播交换机,会将消息发给下面所有队列;topic交换机,可以通过模糊匹配rk路由键,将消息转发到指定的队列中;direct交换机,通过完全匹配rk路由键,将消息转发到指定的队列中;header交换机使用的较少

kafka:

  1. 架构为生产者-broker-topic-partition-消费者组-消费者
  2. 消费者绑定在消费者组中,监听topic消费消息
  3. topic的消息只会被同一个消费者组中的一个消费者消费,所以消费者组中的消费者都会指定需要消费的topic中的partition
  4. 消息基本都是基于发布-订阅模式的

消息重复消费问题:

分布式集群下:

在RabbitMq中,消费者通过监听队列消费消息,当出现读个消费者监听同一个队列的情况时,RabbitMq中的轮询机制会保证消息只会被一个消费者消费

在Kafka中,消息是基于消费者组被订阅的,消费者组中的一个消费者只会消费一个topic中的一个partition的消息,也保证了消息只会被一个消费者消费

相关推荐
热爱运维的小七8 分钟前
从数据透视到AI分析,用四层架构解决运维难题
运维·人工智能·架构
陈平安Java and C8 分钟前
RabbitMQ简单介绍和安装
rabbitmq
陈平安Java and C10 分钟前
RabbitMQ应用2
rabbitmq
桂月二二41 分钟前
实时事件流处理架构的容错设计
架构·wpf
RainbowSea1 小时前
4. RabbitMQ 发布确认的配置详细说明
java·消息队列·rabbitmq
小马爱打代码2 小时前
Kafka - 消息零丢失实战
分布式·kafka
长河2 小时前
Kafka系列教程 - Kafka 运维 -8
运维·分布式·kafka
孪生质数-5 小时前
SQL server 2022和SSMS的使用案例1
网络·数据库·后端·科技·架构
雨会停rain5 小时前
如何提高rabbitmq消费效率
分布式·rabbitmq