Files
KnowStreaming/docs/plus/01.Kafka开发环境搭建.md
2023-02-14 16:27:47 +08:00

107 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### 环境要求
- Java11
- IDEA 示例以2022.3.1版本为准,其他版本可能存在差异)
- Gradle 5.6.2 (自动下载,无需提前准备)
#### 环境配置
##### 1. **下载源码**
```
$ git clone https://giturl/kafka.git
```
##### 2. **切换分支**
```
$ git checkout -b kafka-2.5.0-d-350-dev origin/kafka-2.5.0-d-350
```
##### 3. **生成IDEA项目文件**
```
$ cd kafka
$ ./gradlew idea
```
然后使用IDEA打开kafka.ipr文件
##### 4. **IDEA配置**
下载Scala插件 ![kafka-dev-idea-scala-plugin](assets/kafka-dev-idea-scala-plugin.png)
Project Settings -> Project -> Project JDK改为Java11 ![IDEA JDK](assets/kafka-dev-jdk.png)
##### 5. **生成消息协议文件**
```
./gradlew jar
或者
./gradlew clients:processMessages
```
> 至此已经可以正常在IDEA下查看Kafka源码了
##### 6. **编译Kafka Release包**
```
./gradlew clean releaseTarGz
```
或者IDEA上执行
![Release](assets/kafka-dev-build-release.png)
#### 运行环境
##### 1. **修改配置文件**
**config/server.properties**
主要修改以下配置
```
broker.id=0 // Broker节点ID可以保持默认
listeners=PLAINTEXT://:9092 // 监听地址,或者认证方式参考以下额外参数
log.dirs=kafka-logs // 数据目录
zookeeper.connect=localhost:2181 // ZK地址
认证方式额外参数(根据实际情况调整):
listeners=SASL_PLAINTEXT://:9093,PLAINTEXT://:9092
sasl.enabled.mechanisms=PLAIN
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
增强版Kafka额外配置参数
cluster.id=0 // LogiKM中接入的集群ID
gateway.url=http://logikm-ip:8080/gateway // LogiKM地址
```
##### 2. **修改IDEA运行配置**
![kafka-dev-idea-run-config](assets/kafka-dev-idea-run-config.png)
> 记得Add VM options
```
VM options: -Dlog4j.configuration=file:config/log4j.properties -Dkafka.logs.dir=server-logs
Main class: kafka.Kafka
Program arguments: config/server.properties
如果是认证方式额外参数:
-Djava.security.auth.login.config=config/kafka_server_jaas.conf
```
##### 3. **运行Kafka**
![kafka-dev-run-kafka](assets/kafka-dev-run-kafka.png)