Kafka單機版安裝部署

目錄

  • 1.1、概述
  • 1.2、系統環境
  • 1.3、ZooKeeper的作用
  • 1.4、部署流程
    • 1.4.1、下載安裝包
    • 1.4.2、解壓文件
    • 1.4.3、創建日志目錄
    • 1.4.4、配置Kafka
    • 1.4.5、啟動Kafka服務
    • 1.4.6、啟動成功驗證
  • 1.5、創建Topic測試
  • 1.6、消息生產與消費測試
    • 1.6.1、啟動生產者
    • 1.6.2、啟動消費者

1.1、概述

????????Kafka的搭建模式包括單節點單Broker部署、單節點多Broker部署、集群部署(多節點多Broker),分別適用于不同的場景和需求,從簡單的單節點測試環境到復雜的多節點高可用生產環境。在實際部署時,應根據系統的可用性要求、數據量、并發負載等因素選擇合適的部署模式。

  • 單節點單Broker部署
    ????????在這種部署方式中,Kafka的所有服務都運行在單個節點上,包括單個Kafka Broker。這種部署方式適用于開發或測試環境,但在生產環境中可能不是最佳選擇,因為它不具備高可用性和負載均衡的能力。
  • 單節點多Broker部署
    ????????這種部署方式在單個節點上運行多個Kafka Broker實例。每個Broker實例有不同的配置文件,通常使用不同的端口號和日志目錄。這種方式在單臺物理機或虛擬機上提供了更好的資源利用,但仍然不具備高可用性,因為所有服務仍然依賴于單個節點的穩定性。
  • 集群部署(多節點多Broker)
    ????????在集群部署中,Kafka Broker分布在多個物理或虛擬節點上。每個Broker實例通常都有自己的配置文件,并連接到一個共同的ZooKeeper集群,以協調和同步集群內的信息。集群部署方式提供了高可用性、容錯能力和水平擴展性,是生產環境中的首選部署方式。

1.2、系統環境

????????Kafka強依賴ZooKeeper,如果想要使用Kafka,就必須安裝ZooKeeper,ZooKeeper的安裝教程請參考Zookeeper單機版安裝部署這篇博文。Kafka中的消費偏置信息、kafka集群、topic信息會被存儲在ZooKeeper中。有人可能會說我在使用Kafka的時候就沒有安裝ZooKeeper,那是因為Kafka內置了一個ZooKeeper,一般我們不使用它。具體系統環境如下:

環境名稱版本號
操作系統CentOS Linux release 8.4.2105
JDK17.0.7
ZooKeeper3.8.4
Kafka3.7.2

1.3、ZooKeeper的作用

????????Zookeeper在Kafka中扮演著關鍵的角色,它提供了分布式協調和配置管理服務,對于Kafka集群的正常運行和高可用性至關重要。Zookeeper在Kafka中的作用主要包括:

  • Leader選舉
    ????????Zookeeper負責管理Kafka集群中的Broker選舉出Leader的過程。當集群中某個Broker作為Leader發生故障時,Zookeeper會協調其他Broker選舉新的Leader,以保證Kafka集群的穩定運行。
  • 配置管理
    ????????Zookeeper存儲了Kafka集群的關鍵元數據,包括主題配置信息、分區信息等。當這些配置需要更新時,Zookeeper確保所有Broker都可以獲取到最新的配置信息。
  • 同步
    ????????Zookeeper在Kafka的分布式環境中保證數據的一致性。它管理Kafka集群中的所有Broker,確保它們的狀態同步。
  • 節點管理
    ????????Zookeeper跟蹤Kafka集群中每個節點的狀態和信息。這包括節點加入或離開集群的情況,以及節點的健康狀況。
  • 注冊并監控Broker,調整負載均衡
    ????????Kafka的每個Broker在啟動時,都會在Zookeeper中注冊,告訴Zookeeper其Broker ID。當節點失效時,Zookeeper會刪除該節點,從而監控整個集群Broker的變化,并能夠及時調整負載均衡。
  • 協調生產者和消費者的訂閱關系
    ????????Zookeeper幫助Kafka在無狀態的條件下建立起生產者和消費者的訂閱關系,實現生產者和消費者的負載均衡。
  • 偏移量管理
    ????????在Kafka中,Zookeeper用于提交偏移量。這樣,即使節點在任何情況下失敗了,它也可以從之前提交的偏移量中恢復。
  • 其他活動
    ????????Zookeeper還執行其他活動,如leader檢測、分布式同步、配置管理、識別新節點何時離開或連接、集群、節點實時狀態等。

1.4、部署流程

????????本文將在操作系統為CentOS Linux release 8.4.2105、Java環境為JDK17.0.7、ZooKeeper為3.8.4版本的服務器上部署Kafka3.7.2版本,部署架構如下圖所示。具體流程如下:
部署架構

1.4.1、下載安裝包

????????用戶可以自行在Apache Kafka官網 ,選擇最新穩定版本進行下載。在國內,從官網的下載速度較慢,可以從博主提供的資源地址下載:資源下載,也可以選擇國內鏡像站下載,比如阿里鏡像站:阿里鏡像 。官網下載和阿里鏡像下載如下:
官網下載
阿里鏡像
????????下載文件一般為一個.tar.gz或.zip格式的壓縮包,例如 kafka_2.13-4.0.0.tgz。下載后將安裝包保存在服務器上的自定義目錄下即可,比如:/usr/local/Kafka。

1.4.2、解壓文件

????????對于.tar.gz文件,可以使用以下命令進行文件解壓。命令如下:

tar -xvzf kafka_2.13-3.7.2.tgz

????????解壓后,將會生成一個名為 kafka_2.13-3.7.2的目錄,該目錄即為Kafka的安裝目錄。為了方便配置,可以重命名 Kafka 安裝目錄。解壓后的目錄結構如下:
目錄結構

1.4.3、創建日志目錄

????????根據Kafka的配置要求,需要創建一個目錄用于存放日志。命令如下:

mkdir /data/kafka/logs

1.4.4、配置Kafka

????????進入kafka_2.13-3.7.2/config目錄,使用文本編輯器(如 vi、nano 或 emacs)打開server.properties文件并進行如下配置:# 數據存儲路徑 log.dirs=/data/kafka/logs # 監聽地址 listeners=PLAINTEXT://:9092 # ZooKeeper 地址 zookeeper.connect=localhost:2181。最終配置文件如下:
配置文件

1.4.5、啟動Kafka服務

????????啟動服務時先要啟動ZooKeeper,再啟動Kafka;關閉服務時先要關閉Kafka,在關閉ZooKeeper。啟動Kafka時,先進入 kafka_2.13-3.7.2/bin 目錄,執行 ./kafka-server-start.sh ../config/server.properties 命令啟動 Kafka服務,啟動成功后的效果如下:
啟動成功

1.4.6、啟動成功驗證

????????出現上述界面后,但是并不能保證Kafka已經啟動成功,輸入jps查看進程,如果可以看到Kafka進程,表示啟動成功。具體如下:
Kafka進程

1.5、創建Topic測試

????????創建Topic時,先進入 kafka_2.13-3.7.2/bin 目錄,執行 ./kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1 命令創建一個名為test-topic的主題,創建成功后的效果如下:
創建Topic成功
????????也可以通過./kafka-topics.sh --list --bootstrap-server localhost:9092命令查看所有的主題列表,具體如下所示:
主題列表

1.6、消息生產與消費測試

1.6.1、啟動生產者

????????啟動生產者時,先進入 kafka_2.13-3.7.2/bin 目錄,執行 ./kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092命令后就可以向名為test-topic的主題中生產消息,效果如下:
生產消息

1.6.2、啟動消費者

????????啟動消費者時,先進入 kafka_2.13-3.7.2/bin 目錄,執行 ./kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092命令后就可以消費名為test-topic的主題中的消息,效果如下:
消費消息

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

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

相關文章

【C++設計模式之Observer觀察者模式】

Observer觀察者模式 模式定義動機(Motivation)結構(Structure)應用場景一(氣象站)實現步驟1.定義觀察者接口2.定義被觀察者(主題)接口3.實現具體被觀察者對象(氣象站)4.實現具體觀察者(例如:顯示屏)5.main.cpp中使用示例6.輸出結果7. 關鍵點 …

資產月報怎么填?資產月報填報指南

資產月報是企業對固定資產進行定期檢查和管理的重要工具,它能夠幫助管理者了解資產的使用情況、維護狀況和財務狀況,從而為資產的優化配置和決策提供依據。填寫資產月報時,除了填報內容外,還需要注意格式的規范性和數據的準確性。…

UG471 之 SelectIO 邏輯資源

背景 《ug471》介紹了Xilinx 7 系列 SelectIO 的輸入/輸出特性及邏輯資源的相關內容。 第 1 章《SelectIO Resources》介紹了輸出驅動器和輸入接收器的電氣特性,并通過大量實例解析了各類標準接口的實現。 第 2 章《SelectIO Logic Resources》介紹了輸入輸出數據…

C++ 內存泄漏相關

ASAN 參考鏈接 https://blog.csdn.net/wonengguwozai/article/details/129593186https://www.cnblogs.com/greatsql/p/16256926.htmlhttps://zhuanlan.zhihu.com/p/700505587小demo // leak.c #include <stdio.h> #include <stdlib.h> #include <string.h>…

計算人聲錄音后電平的大小(dB SPL->dBFS)

計算人聲錄音后電平的大小 這里筆記記錄一下&#xff0c;怎么計算已知大小的聲音&#xff0c;經過麥克風、聲卡錄制后軟件內錄得的音量電平值。&#xff08;文章最后將計算過程整理為Python代碼&#xff0c;方便復用&#xff09; 假設用正常說話的聲音大小65dB&#xff08;SP…

【MySQL數據庫】C/C++連接數據庫

MySQL要想在C/C下使用&#xff0c;就必須要有 MySQL 提供的頭文件和相關的庫。 在Ubuntu系統上&#xff0c;使用 apt install mysql-server 安裝MySQL服務器后&#xff0c;僅安裝了MySQL數據庫服務本身&#xff0c;并沒有安裝MySQL開發所需的庫和頭文件。因此&#xff0c;在嘗試…

Kubernetes調度策略深度解析:NodeSelector與NodeAffinity的正確打開方式

在Kubernetes集群管理中&#xff0c;如何精準控制Pod的落點&#xff1f;本文將深入解析兩大核心調度策略的差異&#xff0c;并通過生產案例教你做出正確選擇。 一、基礎概念快速理解 1.1 NodeSelector&#xff08;節點選擇器&#xff09; 核心機制&#xff1a;通過標簽硬匹配…

Golang的linux運行環境的安裝與配置

很多新手在學go時&#xff0c;linux下的配置環境一頭霧水&#xff0c;總結下&#xff0c;可供參考&#xff01; --------------------------------------Golang的運行環境的安裝與配置-------------------------------------- 將壓縮包放在/home/tools/下 解壓 tar -zxvf g…

自定義實現elementui的錨點

背景 前不久有個需求&#xff0c;上半部分是el-step步驟條&#xff0c;下半部分是一些文字說明&#xff0c;需要實現點擊步驟條中某個步驟自定義定位到對應部分的文字說明&#xff0c;同時滾動內容區域的時候還要自動選中對應區域的步驟。element-ui-plus的有錨點這個組件&…

Oracle Fusion常用表

模塊表名表描述字段說明sodoo_headers_all銷售訂單頭表sodoo_lines_all銷售訂單行表sodoo_fulfill_lines_all銷售訂單明細行表popo_headers_all采購訂單頭表popo_lines_all采購訂單行表popo_line_locations_all采購訂單分配表popo_distributions_all采購訂單發運表invEGP_SYSTE…

面試常問系列(一)-神經網絡參數初始化-之-softmax

背景 本文內容還是對之前關于面試題transformer的一個延伸&#xff0c;詳細講解一下softmax 面試常問系列(二)-神經網絡參數初始化之自注意力機制-CSDN博客 Softmax函數的梯度特性與輸入值的幅度密切相關&#xff0c;這是Transformer中自注意力機制需要縮放點積結果的關鍵原…

5.9-selcct_poll_epoll 和 reactor 的模擬實現

5.9-select_poll_epoll 本文演示 select 等 io 多路復用函數的應用方法&#xff0c;函數具體介紹可以參考我過去寫的博客。 先綁定監聽的文件描述符 int sockfd socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serveraddr; memset(&serveraddr, 0, sizeof(struc…

Python基礎語法(上)

常量和表達式 我們可以使用python來進行一些 - * / %的一些運算 print(1 2 - 3) print(1 2 * 3) print(1 2 / 3) python中的運算規則與數學當中一致&#xff0c;先乘除后加減&#xff0c;有括號的先計算括號里面的。 形如 1 2 - 3 這樣是算式, 在編程語言中稱為 表達式,…

數圖閃耀2025深圳CCFA中國零售博覽會:AI+零售數字化解決方案引發現場熱潮

展會時間&#xff1a;2025年5月8日—10日 地點&#xff1a;深圳國際會展中心&#xff08;寶安新館&#xff09; 【深圳訊】5月8日&#xff0c;亞洲規模最大的零售行業盛會——2025 CCFA中國零售博覽會在深圳盛大開幕。本屆展會匯聚全球25個國家和地區的900余家參展商&#xff…

方法:批量識別圖片區域文字并重命名,批量識別指定區域內容改名,基于QT和阿里云的實現方案,詳細方法

基于QT和阿里云的圖片區域文字識別與批量重命名方案 項目場景 ??企業檔案管理??:批量處理掃描合同、發票等文檔,根據編號或關鍵信息自動重命名文件??醫療影像管理??:識別X光、CT等醫學影像中的患者信息,按姓名+檢查日期重命名??電商訂單處理??:從訂單截圖中提…

Mybatis解決以某個字段存在,批量更新,不存在批量插入(高效)(一)

背景 在開發企業級應用時&#xff0c;我們經常需要處理批量數據的插入和更新操作。傳統的逐條處理方式性能低下&#xff0c;而簡單的REPLACE INTO或INSERT ... ON DUPLICATE KEY UPDATE在某些場景下又不夠靈活。本文將介紹一種基于臨時表的高效批量插入/更新方案&#xff0c;解…

JVM、JRE、JDK的區別

JVM JVM全稱Java虛擬機(Java Virtual Machine, JVM),它是運行java字節碼的虛擬機&#xff0c;JVM針對不同的系統有不同的實現&#xff0c;目的運行相同的字節碼有同樣的結果&#xff0c;JVM是“一次編譯&#xff0c;到處運行”實現的關鍵。如下不同的編程語言編譯生成字節碼文…

神經元和神經網絡定義

在深度學習中&#xff0c;神經元和神經網絡是構成神經網絡模型的基本元素。讓我們從基礎開始&#xff0c;逐步解釋它們的含義和作用。 1?? 神經元是什么&#xff1f; 神經元是神經網絡中的基本計算單元&#xff0c;靈感來自于生物神經系統中的神經元。每個人的腦中有數以億…

CDGP重點知識梳理

寫在前面 全文11700字,共82個重點知識 目 錄 考點分布 考試要求 第一章 數據管理-5%

Ubuntu 22.04 安裝配置遠程桌面環境指南

在云服務器或遠程主機上安裝圖形化桌面環境,可以極大地提升管理效率和用戶體驗。本文將詳細介紹如何在 Ubuntu 22.04 (Jammy Jellyfish) 系統上安裝和配置 Xfce4 桌面環境,并通過 VNC 實現遠程訪問。 系統環境 操作系統:Ubuntu 22.04 LTS (Jammy Jellyfish)架構:AMD64安裝…