kafka-0.10.1源码 IDEA-2020.3编译

本文介绍了Kafka-0.10.1源码的下载方法,包括zip和git下载。还说明了将Kafka源码导入IDEA2020.3的步骤,以及IDEA中Gradle的配置过程,如查看对应版本、安装4.8.1版本、配置系统环境变量、验证安装和在IDEA中配置Gradle等。

一、kafka-0.10.1源码下载

前往https://github.com/apache/kafka/tree/0.10.1,查看Github上对应仓库的代码。

 

 

1.1 源码zip下载

进入界面后,点击Download ZIP后,程序就开始自动下载。

 

 

1.2 源码git下载

git clone -b 0.10.1 https://github.com/apache/kafka.git

二、kafka源码导入IDEA2020.3

打开IDEA,导入Kafka源码,路径是kafka源码的下载地址。

 

 

三、IDEA gradle配置

IDEA导入kafka源码的过程中,很容易因为gradle版本不一致出现问题。

例如:

A problem occurred evaluating root project ‘kafka-0.10.0.1-src’. Failed to apply plugin [class ‘org.gradle.api.plugins.scala.ScalaBasePlugin’] No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions

3.1 查看kafka源码对应的Gradle版本

 

可以看出本份代码对应的是4.8.1版本

3.2 安装4.8.1版本的Gradle

点击https://gradle.org/next-steps/?version=4.8.1&format=bin,浏览器自动下载。

3.3 Gradle配置

Gradle下载完成后,解压至自定义目录下。

3.3.1 配置系统环境变量PATH

系统环境变量PATH配置解压后的Gradle目录

 

3.4 验证安装完成的Gradle

打开powershell,输入

gradle -v

 

3.5 idea 配置安装完成后的gradle

 

按照上图中描述的,将Gradle User Home修改外Gradle安装路径。Gradle的Home配置为Gradle的安装路径。

为了在 Jenkins 中定时执行这些服务器上的脚本文件,你可以编写一个 Shell 脚本来遍历 `SERVER_IPS` 中的服务器列表,并通过 SSH 连接到每个服务器执行指定的脚本文件。以下是一个完整的 Shell 脚本示例: ```bash #!/bin/bash # 定义服务器列表 declare -A SERVER_IPS=( ["webunion-kafka-traffic-1"]="10.0.0.1" ["webunion-kafka-traffic-2"]="10.0.0.2" ["webunion-kafka-traffic-3"]="10.0.0.204" ["webunion-kafka-traffic-4"]="10.0.0.8" ["webunion-kafka-traffic-5"]="10.0.0.9" ["webunion-kafka-traffic-6"]="10.0.0.19" ["webunion-kafka-traffic-7"]="10.0.0.20" ["webunion-kafka-traffic-8"]="10.0.0.21" ["webunion-kafka-traffic-9"]="10.0.0.105" ["webunion-kafka-traffic-10"]="10.0.0.106" ["webunion-kafka-traffic-11"]="10.0.0.107" ["webunion-kafka-traffic-12"]="10.0.0.108" ["webunion-kafka-traffic-13"]="10.0.0.104" ["webunion-kafka-traffic-14"]="10.0.0.25" ["webunion-kafka-traffic-15"]="10.0.0.24" ["webunion-kafka-traffic-16"]="10.0.0.26" ["webunion-kafka-traffic-17"]="10.0.0.101" ["webunion-kafka-traffic-18"]="10.0.0.100" ["webunion-kafka-traffic-19"]="10.0.0.28" ["webunion-kafka-traffic-20"]="10.0.0.27" ["webunion-kafka-traffic-21"]="10.0.0.31" ["webunion-kafka-traffic-22"]="10.0.0.30" ) # 定义SSH用户 SSH_USER="your_ssh_username" # 定义远程服务器上要执行的脚本路径 SCRIPT_PATH="/path/to/remote/script.sh" # 遍历服务器列表并执行脚本 for HOSTNAME in "${!SERVER_IPS[@]}"; do IP=${SERVER_IPS[$HOSTNAME]} echo "正在连接到 $HOSTNAME ($IP) 并执行脚本..." # 使用SSH连接并执行脚本 ssh -o StrictHostKeyChecking=no ${SSH_USER}@${IP} "bash -s" < ${SCRIPT_PATH} if [ $? -eq 0 ]; then echo "在 $HOSTNAME ($IP) 上成功执行脚本。" else echo "在 $HOSTNAME ($IP) 上执行脚本失败。" fi done echo "所有服务器上的脚本执行完成。" ``` ### 脚本说明: 1. **服务器列表定义**: - 使用 `declare -A` 定义了一个关联数组 `SERVER_IPS`,键是主机名,值是对应的IP地址。 2. **SSH用户和脚本路径**: - `SSH_USER` 是你在远程服务器上使用的SSH用户名。 - `SCRIPT_PATH` 是本地或远程服务器上要执行的脚本路径。 3. **SSH连接和执行脚本**: - 使用 `ssh` 命令连接到每个服务器,并通过 `bash -s` 执行远程脚本。 - `< ${SCRIPT_PATH}` 将本地脚本内容通过 `ssh` 传递给远程服务器执行。 4. **错误处理**: - 使用 `$?` 检查上一个命令的退出状态,判断脚本是否成功执行。 ### Jenkins配置定时任务: 1. 登录 Jenkins,进入 **Manage Jenkins > Script Console**。 2. 创建一个新的自由风格项目。 3. 在 **Build Triggers** 中选择 **Build periodically**,并填写定时表达式,例如: ``` 0 2 * * * # 每天凌晨2点执行 ``` 4. 在 **Build Environment** 中选择 **Execute shell script on remote host using ssh**(需要安装插件如 SSH Pipeline Steps)。 5. 在 **Build** 阶段添加一个 **Execute shell** 步骤,并将上述脚本粘贴进去。 6. 保存配置并运行任务。 ### 注意事项: - 确保 Jenkins 服务器能够通过 SSH 连接到所有目标服务器,建议使用密钥认证方式。 - 如果使用密码认证,可以使用 `sshpass` 工具,但不推荐在生产环境中使用明文密码。 - 确保远程服务器上的脚本具有可执行权限。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大锤爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值