【源碼剖析】2-搭建kafka源碼環境

在上篇文章kafka核心概念中,解釋了kafka的核心概念,下面開始進行kafka源碼編譯。為什么學習源碼需要進行源碼編譯呢,我認為主要有兩點:

  • 可以進行debug,跟蹤代碼執行邏輯
  • 可以對源碼改動,強化學習學習效果

安裝軟件列表

本文以Windows為例進行說明,需要安裝的軟件主要有

  • jdk-1.8
  • scala-2.10
  • gradle-3.1
  • zookeeper3.4.9
  • idea

安裝jdk1.8

下載地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html,下載后配置一下環境變量:

增加環境變量JAVA_HOME,值為E:\jdk-8

編輯環境變量Path,增加%JAVA_HOME%\bin

安裝Scala

下載地址:https://www.scala-lang.org/files/archive/,使用此地址下載快很多,下載后配置一下環境變量:

增加環境變量SCALA_HOME,值為E:\scala-2.10.6

編輯環境變量Path,增加%SCALA_HOME%\bin

配置完成后打開終端輸入scala -version

安裝gradle

下載地址:https://mirrors.cloud.tencent.com/gradle/,下載后配置一下環境變量:

增加環境變量GRADLE_HOME,值為E:\gradle-3.1

編輯環境變量Path,增加%GRADLE_HOME%\bin

安裝zookeeper

下載地址:https://archive.apache.org/dist/zookeeper/,可以不配置環境變量,在bin目錄下直接點擊zkServer.cmd,即可啟動

kafka源碼構建

下載源碼

使用的源碼版本為0.10.0.1,下載地址:https://archive.apache.org/dist/kafka/0.10.0.1/kafka-0.10.0.1-src.tgz

安裝Scala插件

idea默認不支持Scala,需要在idea中安裝Scala插件

配置啟動kafka

log4j.properties

在kafka服務端使用log4j輸出日志,啟動前把config目錄下的log4j.properties放到core/src/main/scala路徑下

server.properties

server.properties是kafka的主要配置文件,修改以下3項即可

listeners = PLAINTEXT://your.host.name:9092log.dirs=Y:/kafka-logszookeeper.connect=192.168.0.103:2181

配置idea

在運行設置中,進行如下的配置:

  • Main class : kafka.Kafka

  • Program arguments : config/server.properties

  • Working Directory : Y:\kafka

  • Classthpath : core
    在這里插入圖片描述

驗證

配置完成后,點擊運行,即可啟動kafka,可以通過編譯好的kafka腳本去嘗試連接kafka進行操作,下載一份編譯好的kafka,https://archive.apache.org/dist/kafka/0.10.0.1/kafka_2.10-0.10.0.1.tgz,然后使用里面腳本進行操作。

Y:\kafka_2.10-0.10.1.1>bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test01
Created topic "test01".Y:\kafka_2.10-0.10.1.1>bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list
test01

創建成功表示編譯后的代碼啟動成功。

參考書籍:《kafka源碼剖析》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84577.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84577.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84577.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小紅書視頻圖文提取:采集+CV的實戰手記

項目說明:這波視頻,值不值得采? 你有沒有遇到過這樣的場景?老板說:“我們得看看最近小紅書上關于‘旅行’的視頻都說了些什么。”團隊做數據分析的,立馬傻眼:官網打不開、接口抓不著、視頻不能…

Cloudflare 從 Nginx 到 Pingora:性能、效率與安全的全面升級

在互聯網的快速發展中,高性能、高效率和高安全性的網絡服務成為了各大互聯網基礎設施提供商的核心追求。Cloudflare 作為全球領先的互聯網安全和基礎設施公司,近期做出了一個重大技術決策:棄用長期使用的 Nginx,轉而采用其內部開發…

從編輯到安全設置: 如何滿足專業文檔PDF處理需求

隨著數字化辦公的發展,PDF 已成為跨平臺文檔交互的標準格式。無論是在日常辦公、學術研究,還是項目協作中,對 PDF 文件進行高效編輯與管理的需求日益增長。功能全面、操作流暢且無額外負擔的 PDF 編輯工具,它是一款在功能上可與 A…

Kafka消費者組位移重設指南

#作者:張桐瑞 文章目錄 一、Kafka 與傳統消息引擎的核心差異二、重設消費者組位移的核心原因三、重設位移的兩大維度與七種策略四、重設位移的實現方式(一)Java API 方式(二)命令行腳本方式(Kafka 0.11&am…

分類模型:邏輯回歸

1、針對設計:二分類 Logistic 回歸最初是為二分類問題設計的, Logistic 回歸基于概率,通過 Sigmoid 函數轉換輸入特征的線性組合,將任意實數映射到 [0, 1] 區間內。 通過引入一個決策規則(通常是概率的閾值&#xff…

CppCon 2015 學習:C++ WAT

這段代碼展示了 C 中的一些有趣和令人困惑的特性,尤其是涉及數組訪問和某些語法的巧妙之處。讓我們逐個分析: 1. assert(map[“Hello world!”] e;) 這一行看起來很不尋常,因為 map 在這里被用作數組下標訪問器,但是在前面沒有…

vscode自定義主題語法及流程

vscode c/c 主題 DIY 啟用自己的主題(最后步驟) 重啟生效 文件–>首選項–>主題–>顏色主題: 也可以在插件里找到哈 手把手教你制作 在C:\Users\jlh.vscode\extensions下自己創建一個文件夾 里面有兩個文件和一個文件夾 具體內容: package.json: {"name&…

前端傳遞日期范圍(開始時間和結束時間),后端解析及查詢

前端技術&#xff1a;Vue3 TypeScript Element Plus 后端技術&#xff1a;Java Spring Boot MyBatis 應用效果&#xff1a; 原來方案 1、前端日期控件使用 el-date-picker&#xff0c;日期顯示格式和日期值返回格式都為&#xff1a;YYYY-MM-DD <el-form :model"…

零基礎設計模式——行為型模式 - 命令模式

第四部分&#xff1a;行為型模式 - 命令模式 (Command Pattern) 接下來&#xff0c;我們學習行為型模式中的命令模式。這個模式能將“請求”封裝成一個對象&#xff0c;從而讓你能夠參數化客戶端對象&#xff0c;將請求排隊或記錄請求日志&#xff0c;以及支持可撤銷的操作。 …

禁止 Windows 更新后自動重啟

Windows 默認會在安裝重要更新后自動重啟&#xff0c;但你可以調整設置來避免這種情況&#xff1a; ??方法 1&#xff1a;通過組策略&#xff08;適用于 Windows 專業版/企業版&#xff09;?? 按 Win R&#xff0c;輸入 gpedit.msc 打開 ??本地組策略編輯器??。導航…

GoldenDB簡述

GoldenDB是國產的分布式數據庫。它徹底解決了事務一致性&#xff0c;數據實時一致性的問題。采用的是Shared Nothing&#xff08;分片式存儲&#xff09;的分布式架構。就是不共享數據&#xff0c;各自節點持有各自的數據。對比不共享的&#xff0c;還有其他兩種分布式架構&…

訓練過程中的 Loss ?

文章目錄 在我們訓練的過程中&#xff0c;設置好這個epochs也就是訓練的輪次&#xff0c;然后計算這個損失函數&#xff0c;我們可以知道這個具體的訓練的情況&#xff0c;那么在訓練的過程中&#xff0c;這個損失函數的變化有哪些情況&#xff1f;對應的一個解釋情況是怎么樣的…

S2B2B農產品供應鏈交易多平臺開發有哪些發展前景?如何維護?

一、S2B2B農產品供應鏈交易多平臺開發的未來發展前景 本文將由小編為您介紹關于S2B2B農產品供應鏈交易多平臺開發的內容&#xff0c;希望能夠幫助大家。在數字化時代&#xff0c;農產品供應鏈的數字化轉型成為了一種必然趨勢。S2B2B(Supplier to Business to Business)模式通過…

關于有害的過度使用 std::move

翻譯&#xff1a;2023 11 月 24 日On harmful overuse of std::move cppreference std::move 論 std::move 的有害過度使用 - The Old New Thing C 的 std::move 函數將其參數轉換為右值引用&#xff0c;這使得其內容可以被另一個操作“消費”&#xff08;移動&#xff09;。…

Ubuntu24.04 onnx 模型轉 rknn

前面的環境配置有點懶得寫&#xff0c;教程也很多&#xff0c;可以自己找 rknn-toolkit2 gitee 地址&#xff1a;pingli/rknn-toolkit2 試了很多開源的代碼&#xff0c;都沒辦法跑通&#xff0c; 最后自己改了一版 微調后的 qwen2 模型適用 from rknn.api import RKNN impor…

Electron通信流程

前言 今天講Electron框架的通信流程&#xff0c;首先我們需要知道為什么需要通信。這得益于Electron的多進程模型&#xff0c;它主要模仿chrome的多進程模型如下圖&#xff1a; 作為應用開發者&#xff0c;我們將控制兩種類型的進程&#xff1a;主進程和渲染器進程 。 …

uni-app項目實戰筆記1--創建項目和實現首頁輪播圖功能

ps:本筆記來自B站咸蝦米壁紙項目 一.創建項目&#xff0c;完成項目初始化搭建 1.在HBuilder X創建wallper項目&#xff0c;使用默認模塊&#xff0c;選擇vue&#xff1b; 2.在項目根目錄下創建common目錄&#xff0c;用于存放靜態資源&#xff0c;創建項目時自動生成static目…

機械制造系統中 PROFINET 與 PROFIBUS-DP 的融合應用及捷米科技解決方案

在機械制造領域&#xff0c;工業通信網絡的兼容性與靈活性直接影響產線的自動化水平與生產效率。當前&#xff0c;多數機械制造系統采用PROFINET 控制器構建核心網絡架構&#xff0c;并通過微波無線連接實現設備互聯。隨著工業網絡的發展&#xff0c;系統中常需同時集成PROFINE…

MCP 協議系列序言篇:開啟 AI 應用融合新時代的鑰匙

文章目錄 序言&#xff1a;AI 應用層進入 MCP 時代為什么 MCP 開啟 AI 應用融合新時代的鑰匙為什么是 MCP&#xff1f;它與 Function Calling、Agent 有什么區別&#xff1f;Function CallingAI AgentMCP&#xff08;Model Context Protocol&#xff09; MCP 如何工作MCP Serve…

【threejs】每天一個小案例講解:光照

代碼倉 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone&#xff0c;無需安裝依賴&#xff0c;直接liver-server運行/直接打開chapter01中的html文件 運行效果圖 知識要點 常見光照類型及其特點如下&#xff1a; 1. 環境光&#xff08;Ambi…