Kafka
Databus
直接使用原生SDK会出现的问题
- 客户端配置较为复杂
- 不支持动态配置,更改配置需要停掉服务
- 对于latency不是很敏感的业务,batch效果不佳
优点
- 简化消息队列客户端复杂度
- 解耦业务与Topic
- 缓解集群压力,提高吞吐
Parquet
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架。被多种查询引擎支持
能直接在BMQ中将数据结构化,通过Parquet Engine,可以使用不同的方式构建Parquet格式文件
RocketMQ
使用场景
比如电商业务的注册、订单、库存、物流等,或者是业务的峰值时刻,比如秒杀活动、周年庆、定期特惠等
基本概念
Topic: 逻辑队列
Message: 消息体
Tag: 标签
ConsumerQueue: 分区
Producer: 生产者
Producer Group: 生产者集群
Consumer: 消费者
Consumer Group: 消费者集群
Nameserver: 集群控制器
架构
存储模型
高级特性
- 在事务场景中可以保证事务,达成最终一致性
- 延迟发送:可以定义消息稍后发送
- 消费重试:在消费失败后可以进行消费重试重新进行消费
- 死信队列:死信队列用于处理无法被正常消费的消息。当一条消息初次消费失败,消息队列RocketMQ会自动进行消息重试;达到最大重试次数后,若消费依然失败,则表明Consumer在正常情况下无法正确地消费该消息。此时,消息队列RocketMQ不会立刻将消息丢弃,而是将这条消息发送到该Consumer对应的特殊队列中。 消息队列RocketMQ将这种正常情况下无法被消费的消息称为死信消息,将存储死信消息的特殊队列称为死信队列。