探秘Kafka源码:关键内容解析

文章目录

一、以kafka-3.0.0为例

打开 IDEA,点击 File->Open...->源码包解压的位置。

1.1安装 gradle

Gradle是类似于 maven 的代码管理工具。Kafka基于它编译。

IDEA 自动帮你下载安装,下载的时间比较长(网络慢,需要 1 天时间,有 VPN 需要几分钟)。

二、生产者源码

2.1源码主流程图

2.2 初始化

2.3生产者sender线程初始化

2.4 程序入口

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties;
public class CustomProducer {
	public static void main(String[] args) {
	// 0 配置
	Properties properties = new Properties();
	// 连接集群 bootstrap.servers
	properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"hadoop102
	:9092,hadoop103:9092");
	// 指定对应的 key 和 value 的序列化类型 key.serializer
	properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
	StringSerializer.class.getName());
	properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,Strin
	gSerializer.class.getName());
	// 1 创建 kafka 生产者对象
	// "" hello
	KafkaProducer<String,  String>  kafkaProducer  =  new
	KafkaProducer<>(properties);
	// 2 发送数据
	for (int i = 0; i < 5; i++) {
	kafkaProducer.send(new
	ProducerRecord<>("first","atguigu"+i));
	}
	// 3 关闭资源
	kafkaProducer.close();
	}
}

2.5生产者 main 线程初始化

点击 main()方法中的 KafkaProducer()。

2.6 跳转到 KafkaProducer构造方法

相关推荐
一个儒雅随和的男子21 分钟前
kafka消息中间件的rebalance机制
分布式·kafka
小技工丨1 小时前
Flink SQL 读取 Kafka 数据到 Mysql 实战
sql·flink·kafka
BAStriver12 小时前
关于kafka常见的问题小结
分布式·kafka
HappyChan16 小时前
kakfa生产者消费者实践
云原生·kafka·go
auspicious航21 小时前
Linux系统上安装kafka
linux·运维·kafka
fxrz121 天前
探讨消息队列系统:AWS SQS vs. Apache Kafka
kafka·apache·aws
小小工匠2 天前
Kafka - 高吞吐量的七项核心设计解析
kafka·高吞吐量
艾斯比的日常2 天前
Kafka 消息不丢失:全方位保障策略
分布式·kafka·linq
ζั͡山 ั͡有扶苏 ั͡✾2 天前
实战指南:构建高可用生产级Kafka集群的完整教程
分布式·zookeeper·kafka·linq·efak
concisedistinct2 天前
Kafka,Mq,Redis作为消息队列使用时的差异?|消息队列
redis·分布式·kafka·消息队列·mq