![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息队列
文章平均质量分 90
Listen-Y
学无止境
展开
-
RocketMQ~生产者与消费者的消费模式(pull or push)
Apache RocketMQ的生产者和主题是多对多的关系,支持同一个生产者向多个主题发送消息。对于生产者的创建和初始化,建议遵循够用即可、最大化复用原则,如果有需要发送消息到多个主题的场景,无需为每个主题都创建一个生产者。Apache RocketMQ的生产者是可以重复利用的底层资源,类似数据库的连接池。因此不需要在每次发送消息时动态创建生产者,且在发送结束后。这样频繁的创建销毁会在服务端产生大量短连接请求,严重影响系统性能。原创 2024-07-14 18:16:04 · 608 阅读 · 0 评论 -
RocketMQ~消息的种类与生命周期(普通消息、延时&定时消息、事务消息)
普通消息一般应用于微服务解耦、事件驱动、数据集成等场景,这些场景大多数要求数据传输通道具有的能力,且对消息的没有特别要求。以在线的电商交易场景为例,上游订单系统将用户下单支付这一业务事件封装成独立的普通消息并发送至 RocketMQ 服务端,下游按需从服务端订阅消息并按照本地消费逻辑处理下游任务。每个消息之间都是相互独立的,且不需要产生关联。另外还有日志系统,以离线的日志收集场景为例,通过埋点组件收集前端应用的相关操作日志,并转发到 RocketMQ。原创 2024-07-14 17:36:46 · 886 阅读 · 0 评论 -
RocketMQ~架构与工作流程了解
RocketMQ 具有的特点。它是一个采用 Java 语言开发的分布式的消息系统,由阿里巴巴团队开发,在 2016 年底贡献给 Apache,成为了 Apache 的一个顶级项目。在阿里内部,RocketMQ 很好地服务了集团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级消息通过 RocketMQ 流转。对于主题模型的实现来说每个消息中间件的底层设计都是不一样的,就比如 Kafka 中的 分区 ,RocketMQ 中的 分队列 ,RabbitMQ 中的 Exchange。原创 2024-07-13 18:18:09 · 1143 阅读 · 0 评论 -
Kafka~高吞吐量设计
我挑几个比较重要的讲一讲。原创 2024-06-30 22:15:59 · 464 阅读 · 0 评论 -
Kafka~特殊技术细节设计:分区机制、重平衡机制、Leader选举机制、高水位HW机制
Kafka 的分区机制是其实现高吞吐和可扩展性的重要特性之一。Kafka 中的数据具有三层结构,即主题(topic)-> 分区(partition)-> 消息(message)。一个 Kafka 主题可以包含多个分区,而每个分区又可以包含多条消息。Topic和Partition是kafka中比较重要的概念。原创 2024-06-30 17:54:50 · 598 阅读 · 0 评论 -
Kafka~消息系列问题解决:重复消费问题、消费重试机制、消息积压问题
那么这里会有个问题:什么时候提交 offset 合适?在Kafka中,有三种常见的消息传递语义:At-least-once、At-most-once、Exactly-once。其中At-least-once和Exactly-once是最常用的。At-least-once消费语义意味着消费者至少消费一次消息,但可能会重复消费同一消息。在At-least-once语义中,。这意味着该消息将在下一次重试时再次被消费。原创 2024-06-30 13:56:29 · 1118 阅读 · 0 评论 -
Kafka~消息系列问题解决:消费顺序问题解决、消息丢失问题优化(不能保证100%)
假如这两条消息的消费顺序不一样造成的最终结果就会截然不同。我们知道 Kafka 中 Partition(分区)是真正保存消息的地方,我们发送的消息都被放在了这里。而我们的 Partition(分区) 又存在于 Topic(主题) 这个概念中,并且我们可以给特定 Topic 指定多个 Partition。每次添加消息到 Partition(分区) 的时候都会采用尾加法。Kafka。消息在被追加到 Partition(分区)的时候都会分配一个特定的偏移量(offset)。原创 2024-06-29 22:58:53 · 886 阅读 · 0 评论 -
Kafka~消息发送过程与ISR机制了解
同步发送时,可以在发送消息后,通过get方法等待消息结果,这种情况能够准确的拿到消息最终的发送结果,要么是成功、要么是失败。而异步发送,是采用了callback的方式进行回调的,可以大大的的提升消息的吞吐量,也可以根据回调来判断消息是否发送成功。原创 2024-06-29 22:47:17 · 917 阅读 · 0 评论 -
Kafka~基础原理与架构了解
Kafka我们了解一直认为是一个消息队列,但是其设计初,是一个:分布式流式处理平台。原创 2024-06-23 18:22:04 · 1142 阅读 · 1 评论 -
MQ~消息队列能力、AMQP协议、现有选择(Kafka、RabbitMQ、RocketMQ 、Pulsar)
RabbitMQ 在吞吐量方面虽然稍逊于 Kafka、RocketMQ 和 Pulsar,但是由于它基于 Erlang 开发,所以并发能力很强,性能极其好,延时很低,达到微秒级。但是也因为 RabbitMQ 基于 Erlang 开发,所以国内很少有公司有实力做 Erlang 源码级别的研究和定制。如果业务场景对并发量要求不是太高(十万级、百万级),要求极高的低延迟,那这几种消息队列中,RabbitMQ 你可以选择使用。RocketMQ 和 Pulsar 支持强一致性。原创 2024-06-22 16:01:00 · 1055 阅读 · 0 评论