RabbitMq、Kafka、RocketMq整理

本文深入对比了RabbitMq、Kafka和RocketMq这三种消息中间件,重点探讨了它们的核心概念、集群、高级特性、消息可靠性以及在生产环境中的实践经验。RabbitMq强调消息持久化和集群模式,Kafka注重高吞吐量,而RocketMq则结合了两者的优点,提供更优的事务和消息可靠性。文中详细介绍了各种场景下的消息处理策略,如死信队列、消息确认机制、幂等性消费和限流,以及消息的顺序和延时消费。此外,还讨论了Kafka的Controller选举、分区副本选举和消费者消费机制,揭示了其高性能的原因。
摘要由CSDN通过智能技术生成

目录

一、常见中间件对比

二、RabbitMq

2.1、AMQP的核心概念

2.2、关键点:

2.2.1、持久化:

2.2.2、交换机的属性:

2.2.3、交换机的类型

2.3、RabbitMq的集群

2.4、RabbitMq的高级特性:

2.4.1、生产者部分(可靠性投递)

2.4.1.2、return listener 消息处理机制:

2.4.2、MQ服务端部分

2.4.3、消费者部分

2.4.4、消息幂等性消费

2.4.5、消费端限流

2.4.6、消息数据堆积问题

2.4.7、消息的顺序消费

2.4.8、死信队列(可实现延迟队列)

2.5、消息场景

2.5.3、Publish/Subscribe 订阅 发布 机制

2.5.4、Routing 基于内容的路由

2.5.5、Topics 话题

2.5.6、Publisher Confirms 发送者消息确认

三、kafka

3.1、使用场景:

3.2、基本概念

3.2.1、不同消费模式

3.2.1.1、消费顺序

3.2.2、主题Topic和消息日志Log

3.2.3、分区存储的原因:

3.3、kafka集群

3.4、基本特性

3.4.1、生产者发送消息的特性

3.4.1.1、发出消息持久化机制参数(消息丢失问题)

3.4.1.2、发送失败会重试:

3.4.1.3、本地缓冲区批量及定时发送

3.4.1.4、内容序列化

3.4.1.5、发送端负载均衡到不同分区

3.4.1.6、发送端可同步阻塞也可异步回调发送

3.4.2、消费端消费特性

3.4.2.1、手动提交防止数据丢失

3.4.2.2、消费逻辑

3.4.2.3、心跳检测更新机制

3.4.2.4、poll拉取方式消费

3.4.2.5、具体消费哪条数据不同方式

3.5、设计原理

3.5.1、Kafka核心总控制器Controller

3.5.2、Controller选举机制

3.5.3、Partition副本选举Leader机制

3.5.4、消费者消费消息的offset记录机制

3.5.5、消费者Rebalance机制

3.5.6、消费者Rebalance分区分配策略:

3.5.7、producer发布消息机制剖析

3.5.8、HW与LEO详解

3.5.9、日志分段存储

3.6、生产经验

3.6.1、生产存储硬件及JVM配置:

3.6.2、重复消费

3.6.3、消息乱序

3.6.4、消息积压

3.6.5、延时队列

3.6.6、消息回溯

3.6.7、分区数越多吞吐量越高吗

3.6.8、kafka的事务

3.6.9、kafka高性能的原因


MQ的主要作用:异步提高性能、解耦提高扩展性、削峰。

一、常见中间件对比

 Kafka、RocketMq和RabbitMq最大的区别就是:前两个是分布式存储。

1.1、ActiveMq

优点:1)完全支持jms规范的消息中间件 ,2)提供丰富的api, 3)多种集群构建模式。

缺点:)在高并发的场景下,性能可能不是很好,容易造成消息堆积,延时。

1.2、RabbitMQ

使用Erlang语言开发,基于AMQP协议实现。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求在其次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值