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

相关推荐
liux35284 小时前
Web集群管理实战指南:从架构到运维
运维·前端·架构
沛沛老爹4 小时前
Web转AI架构篇 Agent Skills vs MCP:工具箱与标准接口的本质区别
java·开发语言·前端·人工智能·架构·企业开发
运维有小邓@4 小时前
Log360 的可扩展架构实践:常见场景
运维·网络·架构
网络工程师_ling8 小时前
【阿里云多地域混合云网络架构】
网络·阿里云·架构
FinClip8 小时前
凡泰极客FinClip荣获2025中国企业IT大奖!AI+超级APP重塑企业AI服务
前端·架构·openai
lkbhua莱克瓦248 小时前
进阶-InnoDB引擎-架构
数据库·mysql·架构·innodb·内存结构
去哪儿技术沙龙9 小时前
Qunar酒店搜索排序模型的演进
前端·架构·操作系统
运维有小邓@11 小时前
Log360 的可扩展架构(三):数据流管道
数据库·架构
Xの哲學11 小时前
Linux 软中断深度剖析: 从设计思想到实战调试
linux·网络·算法·架构·边缘计算
子非衣12 小时前
CenOS7安装RabbitMQ(含延迟队列插件)
分布式·rabbitmq·ruby