![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【kafka】
_laomei_
Debezium Contributor;
Schema Registry Contributor;
flink大数据、微服务体系开发;
展开
-
kafka 增加数据目录并迁移数据到新目录
增加数据目录:kafka log.dirs能够填写多个文件目录,以逗号分割。停止kafka broker创建新的目录,修改log.dirs,添加新增的目录。启动kafkaps: 新加目录后,原有的数据并不会被重新分配到新数据目录里。新创建的topic会被放入分区文件数最少的磁盘目录。迁移数据到新的目录如果想要把原有目录里的kafka数据迁移到新的目录,步骤如下假设原有的数据目录...原创 2019-10-12 19:44:58 · 3930 阅读 · 2 评论 -
Debezium 如何处理 DDL
Mysql的数据变更(ddl, dml)在debezium都对应一个事件,不同的事件Debezium内部会有不同的处理逻辑。Debezium在内存里会维护订阅的所有表的schema信息。当有DDL事件发生时,Debezium会获取到DDL的语句,将DDL作用于内存的表,那么内存中维护的表结构就能和数据库中的表结构一致。当某个表的数据被更新时,假设是insert,Debezium捕获到变更,随后...原创 2019-02-27 22:05:43 · 3050 阅读 · 0 评论 -
@KafkaListener注解解密
本文会介绍一下@KafkaListener的工作流程,但是不会详细深入。@KafkaListener 如何使用spring-kafka使用基于@KafkaListener注解,@KafkaListener使用方式如下@KafkaListener(topics = "xxx")public void testListen(List<ConsumerRecord<xxx, xxx&...原创 2019-01-31 14:14:10 · 22106 阅读 · 4 评论 -
[debezium 源码分析] debezium history topic
概述对于mysql, debezium提供了一个history topic,history topic的配置比较特殊,过期策略为delete,过期时间非常大,一般我设置为Long - 1(只要数据不删除即可),分区个数必须为1。具体原因会在之后给出。对于dbz mysql connector,一般来说history topic是必须的,不可省略。History Topic 机制dbz hi...原创 2018-09-30 23:43:18 · 2797 阅读 · 0 评论 -
debezium mysql connector DDL 解析
debezium实现了一个mysql ddl语法解析器,用来解析ddl语句。debezium在最近会对解析器进行优化,更换mysql语法解析器。为什么debezium mysql connector需要ddl parser?为什么需要DdlParserdebeizum mysql connector有2个reader,分别用于snapshot和增量订阅。它们内部都用到了ddl pars...原创 2018-06-12 23:40:51 · 2733 阅读 · 0 评论 -
基于kafka interceptor监控kafka client消息延迟、数量
kafka interceptor能够拦截,所有kafka client接收或发送的消息, 基于这一点,我们可以在消息被拦截到时,进行消息统计以及相应的延时计算;需要明白一个点kafka在0.10.0版本, 开始支持每个record带一个timestamp. KafkaProducer发送的record所带有的ts比较特别, 你可以在创建ProducerRecord时,设置该recor原创 2018-02-05 12:26:19 · 2027 阅读 · 0 评论 -
利用jmx_exporter获取kafka metrics数据
1.下载kafka,链接 https://kafka.apache.org/downloads; 2.配置kafka的JMX PORT,修改bin/kafka-server-start.sh,添加一行export JMX_PORT="9999",我这里用了9999端口。 3.下载jmx_exporter,链接 https://github.com/prometheus/jmx_exporter...原创 2018-01-17 21:22:57 · 10335 阅读 · 7 评论 -
用confluent的包部署debezium
1.下载confluent 4.0包, 地址https://www.confluent.io/download/,解压放到/opt下;2.下载0.7.1的debezium, 地址https://repo1.maven.org/maven2/io/debezium/debezium-connector-mysql/0.7.1/debezium-connector-mysql-0.7.1-plug原创 2018-01-18 22:14:34 · 2933 阅读 · 0 评论 -
kafka监控 ChaperoneServiceWorker
ChaperoneServiceWorker里面又将ChaperoneClient用scala实现了一遍。增加了将数据存到kafka和hsqldb功能。ChaperoneServiceWorker项目入口是MirrorMakerWorker的main方法。main方法会创建用户设置的个数的MessageAudit实例,并调用这些实例的start方法,start方法内会不断发送TriggerMsg,这原创 2017-09-17 17:45:00 · 467 阅读 · 0 评论 -
kafka监控Chaperone Client
ChaperoneClientChaperoneClient是一个侵入式的组件,本身并不作为一个服务。主要的是MessageTracker的track()方法,代码如下 public void track(double timestamp, int msgCount) { long currentTimeMillis = 0; timeBucketsRWLock.readLock(原创 2017-09-16 20:47:04 · 589 阅读 · 0 评论 -
手动初始化kafka consumer、producer
只是简略的记录如何手动初始化Kafka消费者、生产者1.Consumer相关配置Properties properties = new Properties(); properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, xxx); properties.put(ConsumerConfig.VALUE_原创 2017-07-20 09:33:21 · 2806 阅读 · 0 评论