02|消息队列在架构和功能层面都包含哪些概念?
什么时候会用到消息队列?
架构层面的基本概念
- 深入了解
- 翻译
- 解释
- 总结
消息队列在架构和功能层面涵盖了许多重要概念,包括解耦上下游系统、数据缓存、延时消息和优先级消息等功能。典型应用场景包括订单下单流程和日志采集流程。在架构层面,常见概念包括Broker、Topic、Partition/Queue/MessageQueue、Producer、Consumer等,构成了消息队列的基本架构和功能特点,为实现高性能、高吞吐、低延时的消息传递提供了基础。从功能层面来看,消息队列的基本操作是生产和消费,包括顺序消息、延时消息/定时消息、事务消息、消息重试、消息回溯、广播消费、死信队列、优先级队列等功能。四款主流消息队列包括RabbitMQ、RocketMQ、Kafka、Pulsar,它们各自具有不同的特点和适用场景。对于业务消息类的场景,推荐优先选择RocketMQ,而对于流场景,优先选择Kafka。总的来说,消息队列在架构和功能层面提供了丰富的功能和应用场景,为读者提供了全面的了解和认识消息队列的基本概念和功能特点的基础。
《深入拆解消息队列 47 讲》,新⼈⾸单¥59
全部留言(8)
- 最新
- 精选
- 大胖子呀、多语言支持那一栏,Kafka不支持Java语言的吗?
作者回复: 不好意思,这里的图需要更新下,这里审核不严格,是支持的。
2023-06-28归属地:广东25 - aoe第一次遇到没有作业的一课,庆祝一下
作者回复: 谢谢老哥~
2023-06-27归属地:浙江4 - Geek_66158e因为kafka第一开始的主要目标是日志处理,需要非常大的吞吐量,消息的延迟在最初的设计中没有很大优先级,所以一般是生产端批量发送,消费端一般是批量拉取,不支持push模式,而且kafka在支持消息协议,各种高级消息功能,延时消息等都兴趣不大。这方面就是rocket mq的优势。在一些中小公司,kafka的延迟和基本消息队列功能都非常够用,而且在各种开源connector,soure连接组件都很多,中小团队会优先考虑,后续加spark或者flink做分析难度不大。RocketMQ号称金融级别的可靠性和低延迟,消息队列低级高级应有尽有。
作者回复: 讲的非常好了已经,核心基本就是这些点
2023-07-02归属地:浙江3 - 未设置流方向是不是只追求大吞吐量的业务场景,比如kafka的批量发送特性,而rocketMQ一般不会设置批量发送特性,更注重消息的及时性呢?
作者回复: 是的,我理解,业务消息和流消息面临的场景是不一样的。 简单来讲,业务消息追求的是及时性、更多的功能特性、消息可追踪等。但是流消息追求的是大流量和高吞吐,对延时,功能,可追踪等其实要求不高。 比如,批量发送特性,如果是流消息,那一定需要有,没有的话吞吐打不上去,比如kafka和pulsar都支持batch语义。但是batch,会影响发送的耗时的,因为需要本地批量聚合等待。而业务消息可以不需要支持batch,所以当前rocketmq和rabbitmq就没有batch的语义。
2023-06-27归属地:浙江1 - liu架构层面的基本概念及联系 能通过一张图画出来吗?
作者回复: 收到,感谢建议,我这边画一下,图片会放在原文中。
2023-07-23归属地:上海 - walle斌consumer 与分区数 看不出rocketmq的优势来,应该说并发度,rocketmq max是读队列数(分区数)* 并发线程数2023-08-09归属地:北京
- 花花大脸猫所以是不是可以说,在选择消息队列时,如果能选择到RocketMQ,其实尽量就不需要在选择RabbitMQ来作为选项了?毕竟如果RocketMQ都涵盖RabbitMQ所有功能,并且在分布式架构上更能贴近现在的发展趋势,没有选择RabbitMQ的必要了。2023-08-07归属地:江苏
- Mr.J还是没太懂什么是流方向2023-06-27归属地:北京2