Rocket原理

Rocket整理_kafka

1.延迟消息

Rocket整理_高可用_02

 

 

2.死信消息

Rocket整理_kafka_03

 

 

 

3.有序消息

rocketMQ只能做到"相对有序",而不是全局有序,即Topic下的某个Queue内的消息是有序的。

需要开发者实现MessageQueueSelector逻辑

Rocket整理_运维_04

 

4.事务消息

业务场景:保证本地事务和投递到下游的消息,要么一起成功,要么一起失败。一般用于分布式事务的场景

 

5.存在的问题

  • 所有的消息共用commitlog文件,默认过期14天,这个规则是针对所有topic的中的消息。kafka消息过期时间可以支持到topic级别。

  • 所有的消息共用commitlog文件,大吞吐场景下,假如有长时间的延迟队列(比如7Days,1month这种)这种情况下消息可能不在pageCache中,导致读取磁盘,会影响整体的性能。

  • 假如slave节点宕机很久,slave重启后,会从master节点拉取历史消息进行同步,会产生大量磁盘io,大幅降低pageCache命中率,导致吞吐量降低

 

6.总结

  • 支持积压大量消息

  • 自动容灾,高可用

  • 独立维护各topic的index,pagecache利用率更高

  • 不依赖zk,容易运维

  • 不支持个性化topic过期时间配置