消息中间件
文章平均质量分 71
Java部落格
为了部落!!!
展开
-
Kafka参数调优(二)-消费者Consumer
一、Consumer参数说明1、enable.auto.commit该属性指定了消费者是否自动提交偏移量,默认值是true。为了尽量避免出现重复数据(假如,某个消费者poll消息后,应用正在处理消息,在3秒后kafka进行了重平衡,那么由于没有更新位移导致重平衡后这部分消息重复消费)和数据丢失,可以把它设为 false,由自己控制何时提交偏移量。如果把它设为true,还可以通过配置 auto.commit.interval.ms 属性来控制提交的频率。2、auto.commit.interval.原创 2021-03-13 14:48:29 · 2129 阅读 · 0 评论 -
高性能内存队列—Disruptor
一、Disruptor介绍1、Disruptor特点:基于数组实现的,数组相比链表,查询更快,但是新增/修改操作较慢,而Disruptor的数组是环形数组,是定长的数组,无需扩容,直接覆盖旧数据,所以相比ConcurrentLinkedQueue,性能更好。对比下也是基于数组实现的HashMap,每次扩容耗时较长;基于CAS无锁化,高并发,使用环形Buffer,直接覆盖(不用清除)旧的数据,降低GC频率;实现了基于事件的生产者消费者模式(观察者模式);2、Disruptor的使用定义原创 2021-02-28 17:04:40 · 592 阅读 · 0 评论 -
RocketMQ源码阅读(二)-Consumer消费消息
一、Consumer启动流程Consumer启动时序图:DefaultMQPushConsumerImpl#startpublic synchronized void start() throws MQClientException { switch (this.serviceState) { case CREATE_JUST: this.defaultMQPushConsumer.getMessageModel(),原创 2021-02-21 15:36:28 · 752 阅读 · 5 评论 -
RocketMQ源码阅读(一)-Producer消息发送
一、Producer消息发送时序图二、Producer消息发送源码分析DefaultMQProducerImpl#sendDefaultImpl原创 2021-02-20 16:39:57 · 348 阅读 · 0 评论 -
Kafka参数调优(一)-生产者Producer
Producer参数一、request.required.acksKafka producer的ack有3中机制,初始化producer时的producerconfig可以通过配置request.required.acks不同的值来实现。0:这意味着生产者producer不等待来自broker同步完成的确认继续发送下一条(批)消息。此选项提供最低的延迟但最弱的耐久性保证(当服务器发生故障...原创 2019-02-18 10:26:49 · 4844 阅读 · 2 评论 -
Kafka 设计详解之网络通信
转载:https://www.jianshu.com/p/eab8f15880b5前言Kafka 是 LinkedIn 开发的一个分布式的消息中间件。由于其高吞吐量、可水平扩展等特性,目前被广泛使用,已经是目前大数据生态系统中不可或缺的一环,有关其详细介绍可以查看官方的文档。Kafka 的流行源于他优秀的设计,如依靠磁盘(以及操作系统的 Page Cache)而不是内存来存储队列数据、充分使用...转载 2019-02-18 12:03:31 · 304 阅读 · 0 评论 -
Kafka 数据丢失和重复消费问题
首先介绍下 producer与consumer有可能的delivery guarantee:At most once 消息可能会丢,但绝不会重复传输At least one 消息绝不会丢,但可能会重复传输Exactly once 每条消息肯定会被传输一次且仅传输一次,很多时候这是用户所想要的一、数据丢失问题:生产方:producer 的deliver guarantee 可以通过re...转载 2019-03-08 11:19:48 · 1743 阅读 · 0 评论