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的消息,也保证了消息只会被一个消费者消费

相关推荐
车载诊断技术16 分钟前
电子电气架构---智能汽车应该是怎么样的架构?
架构·汽车·autosar·e/e·电子电气架构
谢尔登22 分钟前
【Node.js】初识微服务
微服务·架构·node.js
Shenqi Lotus41 分钟前
??Ansible——ad-hoc
运维·架构
qq_485015212 小时前
rabbitmq
分布式·rabbitmq
Slow菜鸟3 小时前
SpringBoot教程(安装篇) | RabbitMQ的安装
spring boot·rabbitmq·java-rabbitmq
月夜星辉雪3 小时前
【RabbitMQ 项目】服务端:数据管理模块之绑定管理
分布式·rabbitmq
kalvin_y_liu3 小时前
RabbitMQ
分布式·rabbitmq·ruby
重生之豪哥3 小时前
Rabbitmq中得RPC调用代码详解
qt·rpc·rabbitmq
谢尔登3 小时前
【Node.js】初识 RabbitMQ
node.js·rabbitmq·ruby
王彬泽4 小时前
【RabbitMQ】工作模式
rabbitmq·工作模式