拦截器
摘要:Producer拦截器(interceptor)主要用于实现clients端的定制化控制逻辑。 生产者interceptor使得用户在消息发送前以及producer回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时,producer允许用户指定多个interceptor按序作用于同一条消息
阅读全文
posted @
2022-02-15 22:11
溪水静幽
阅读(105)
推荐(0) 编辑
ISR
摘要:1、AR(Assigned Repllicas)一个partition的所有副本(就是replica,不区分leader或follower) 2、ISR(In-Sync Replicas)能够和 leader 保持同步的 follower + leader本身 组成的集合。 3、OSR(Out-Sy
阅读全文
posted @
2022-02-13 22:44
溪水静幽
阅读(762)
推荐(0) 编辑
Kafka事务
摘要:Kafka事务特性是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务中,或者说是一个原子操作,生产消息和提交偏移量同时成功或者失败。 Kafka中的事务特性主要用于以下两种场景: 生产者发送多条消息可以封装在一个事务中,形成一个原子操作。多条消息要么都发送成功,要么都发送失败。 read-
阅读全文
posted @
2022-02-13 22:23
溪水静幽
阅读(282)
推荐(0) 编辑
事务消息的支持与实现(本地事务)
摘要:Rocketmq是保障本地事务(比如数据库)与mq消息发送的事务一致性,Kafka的事务主要是保障一次发送多条消息的事务一致性(要么同时成功要么同时失败)。 kafka需要对一个topic里的消息做不同的流式计算处理,处理完分别发到不同的topic,这些topic分别被不同的下游系统消费(比如hba
阅读全文
posted @
2022-01-12 23:06
溪水静幽
阅读(197)
推荐(0) 编辑
concurrency实现并发消费
摘要:默认情况下, Spring-Kafka @KafkaListener 串行消费的。缺点显而易见生产者生产的数据过多时,消费端容易导致消息积压的问题。 @KafkaListener 的 concurrecy属性 可以指定并发消费的线程数 。 如果设置 concurrency=2 时,Spring-Ka
阅读全文
posted @
2022-01-09 21:22
溪水静幽
阅读(397)
推荐(0) 编辑
消费端消费重试和死信队列
摘要:当消息消费失败的时候,Spring-Kafka 会通过消费重试机制,重新投递该消息给 Consumer ,让 Consumer 重新消费消息 。默认情况下,Spring-Kafka 达到配置的重试次数时,【每条消息的失败重试时间,由配置的时间隔决定】Consumer 如果依然消费失败 ,那么该消息就
阅读全文
posted @
2022-01-09 21:10
溪水静幽
阅读(1619)
推荐(0) 编辑
批量发送
摘要:生产者 Kafka 的做法是:提供了一个 RecordAccumulator 消息收集器,将发送给相同 Topic 的相同 Partition 分区的消息们,缓冲一下,当满足条件时候,一次性批量将缓冲的消息提交给 Kafka Broker 。 主要涉及的参数 ,三个条件,满足任一即会批量发送: ba
阅读全文
posted @
2022-01-09 15:33
溪水静幽
阅读(402)
推荐(0) 编辑
SpringBoot整合Kafka发送复杂对象
摘要:1、依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <
阅读全文
posted @
2022-01-09 14:58
溪水静幽
阅读(1524)
推荐(0) 编辑
Kafka消息消息顺序、积压、回溯
摘要:顺序消息 kafka想要保证消息顺序,是需要牺牲一定性能的,方法就是一个消费者,消费一个分区,可以保证消费的顺序性。但也仅限于消费端消费消息的有序性,无法保证生产者发送消息有序。 比如:如果发送端配置了重试机制,kafka不会等之前那条消息完全发送成功才去发送下一条消息,这样可能会出现,发送了1,2
阅读全文
posted @
2022-01-08 17:10
溪水静幽
阅读(1618)
推荐(0) 编辑
Kafka重复消费
摘要:重复消费的原因 消息重复消费的根本原因都在于:已经消费了数据,但是offset没有成功提交。 其中很大一部分原因在于发生了再均衡。 1)消费者宕机、重启等。导致消息已经消费但是没有提交offset。 2)消费者使用自动提交offset,但当还没有提交的时候,有新的消费者加入或者移除,发生了rebal
阅读全文
posted @
2021-12-26 19:00
溪水静幽
阅读(3767)
推荐(0) 编辑
rebalance
摘要:将分区的所有权从一个消费者转移到其他消费者的行为称为再均衡(重平衡,rebalance)。 消费者通过向组织协调者(kafka broker)发送心跳来维护自己是消费者组的一员并确认其拥有的分区。对于不同不的消费群体来说,其组织协调者可以是不同的。只要消费者定期发送心跳,就会认为 消费者是存活的并处
阅读全文
posted @
2021-12-26 18:59
溪水静幽
阅读(421)
推荐(0) 编辑
Kafka消费者详解
摘要:一、消费者和消费者群组 在 Kafka 中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响。Kafka 之所以要引入消费者群组这个概念是因为 Kafka 消费者经常会做一些高延迟的操作,比如把数据写到数据库或 HDFS ,或者进行耗时的计算,在这些情况下,单个消
阅读全文
posted @
2021-09-21 15:26
溪水静幽
阅读(1046)
推荐(0) 编辑
Kafka生产者详解
摘要:一、生产者发送消息的过程 Kafka 生产者发送消息的过程: Kafka 会将发送消息包装为 ProducerRecord 对象, ProducerRecord 对象包含目标主题和要发送的内容,同时还可以指定键和分区。在发送 ProducerRecord 对象前,生产者会先把键和值对象序列化成字节数
阅读全文
posted @
2021-09-20 11:40
溪水静幽
阅读(284)
推荐(0) 编辑
KafkaAdminClient
摘要:主题管理:主题的创建、删除、查询 权限管理:具体权限的配置和删除 配置参数管理:Kafka各种资源(Broker、主题、用户、Client-Id等)的参数设置、查询 副本日志管理:副本底层日志路径的变更和详情查询 分区管理:创建额外的主题分区 消息删除:删除指定位移之前的分区消息 Delegatio
阅读全文
posted @
2021-09-19 17:32
溪水静幽
阅读(2095)
推荐(0) 编辑
基于Zookeeper搭建Kafka高可用集群
摘要:拷贝三份 zookeeper 安装包。分别进入安装目录的 conf 目录,拷贝配置样本 zoo_sample.cfg 为 zoo.cfg 并进行修改,修改后三份配置文件内容分别如下: zookeeper01 配置: tickTime=2000 initLimit=10 syncLimit=5 dat
阅读全文
posted @
2021-09-12 21:13
溪水静幽
阅读(80)
推荐(0) 编辑
Kafka丢失消费
摘要:发送消息 Kafka消息发送有两种方式:同步(sync)和异步(async),默认是同步方式,可通过producer.type属性进行配置。Kafka通过配置request.required.acks属性来确认消息的生产: 0 表示不进行消息接收是否成功的确认; 1 表示当Leader接收成功时确认
阅读全文
posted @
2020-05-30 09:53
溪水静幽
阅读(321)
推荐(0) 编辑
Kafka简介
摘要:Kafka 是一个分布式的流处理平台。具有以下特点:支持消息的发布和订阅,支持离线数据处理和实时数据处理;能保证消息的可靠性投递; 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能;并通过多副本分布式的存储方案来保证消息的容错; 高吞吐率,单 Br
阅读全文
posted @
2020-05-30 09:10
溪水静幽
阅读(154)
推荐(0) 编辑