手動部署Kraft模式Kafka集群

来源:https://www.cnblogs.com/iamxiaofu/archive/2023/11/27/17858962.html
-Advertisement-
Play Games

Proj4:改進LiteOS中物理記憶體分配演算法 實驗目的 掌握LiteOS系統調用的自定義方法 實驗環境 Ubantu和IMX6ULL mini 實驗內容 (從代碼角度詳細描述實驗的步驟和過程) 原先代碼: 1 /* 2 3 * Description : find suitable free bl ...


手動部署Kraft模式kafka集群

基本信息

IP地址 Hostname Release Kafka-Version
172.29.145.157 iamdemo1 Centos7.9 kafka_2.12-3.5.1
172.29.145.182 iamdemo2 Centos7.9 kafka_2.12-3.5.1
172.29.145.183 iamdemo3 Centos7.9 kafka_2.12-3.5.1

下載安裝包

kafka安裝包官網下載
下載完成後上傳到伺服器/opt目錄下解壓

tar -xf kafka_2.12-3.5.1.tgz
將文件夾重命名為kafka
mv kafka_2.12-3.5.1 kafka

生成集群隨機uuid

[root@iamdemo1 ~ ]cd /opt/kafka/bin
[root@iamdemo1 bin]# sh kafka-storage.sh random-uuid
COY-4PxTT82yfvGKqAepwQ
配置kafka集群的kraft模式參數
參數位置:/opt/kafka/config/kraft/server.properties
##角色可同時為broker和controller
process.roles=broker,controller 
##node.id為當前伺服器作為節點的id
node.id=1  
##定義投票節點,用於選舉Master,每個節點都必須配置
[email protected]:9093,[email protected]:9093,[email protected]:9093 
##9092為每個broker的通信埠,9092為controller節點的混合埠,如果一個節點是混合節點那就需要同時監聽兩個埠
listeners=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://172.29.145.157:9094 
##broker內部監聽協議
inter.broker.listener.name=PLAINTEXT 
##對外公開的埠
advertised.listeners=EXTERNAL://172.29.145.157:9094,PLAINTEXT://:9092 

controller.listener.names=CONTROLLER 
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,EXTERNAL:PLAINTEXT
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
##kafka數據預設存儲的地方
log.dirs=/opt/kafka/kraft-combined-logs 
##每一個topic預設的分區
num.partitions=6 
##恢複線程
num.recovery.threads.per.data.dir=2 
##用於存儲消費者組的消費偏移量信息的特殊主題,用於在發生故障時或者重新加入時能夠恢復到之前的消費位置
offsets.topic.replication.factor=3 
##用於存儲事務狀態信息的特殊主題,kafka支持事務性寫入,當生產者使用事務模式寫入數據時,信息會寫入這個主題
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
auto.create.topics.enable=false
default.replication.factor=3
##數據的存儲時間
log.retention.hours=168
##設置kafka一個數據段最大值1G
log.segment.bytes=1073741824
##檢查數據過期時間300s一次
log.retention.check.interval.ms=300000

使用集群uuid格式化kafka數據存儲目錄

[root@iamdemo1 bin]# sh kafka-storage.sh format -t COY-4PxTT82yfvGKqAepwQ -c ../config/kraft/server.properties
Formatting /opt/kafka/kraft-combined-logs with metadata.version 3.5-IV2.

修改啟動腳本,暴露JMX埠,配置JVM記憶體大小

##註意,jdk必須為64位jdk,否則JVM記憶體大小設置為4G會報錯啟動失敗,查看方法java --version如果沒有顯示64bit的都是32位
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
    export JMX_PORT="9999"
fi

修改kafka日誌配置參數,避免一小時生成一個日誌文件

文件位置:/opt/kafka/config/log4j.properties
##添加兩條日誌最大量
log4j.appender.kafkaAppender.MaxFileSize=100MB
log4j.appender.kafkaAppender.MaxBackupIndex=5
##修改DatePattern
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd

使用腳本啟動kafka集群

[root@iamdemo1 bin]# sh kafka-server-start.sh -daemon ../config/kraft/server.properties

查看集群狀態

通過jps即可看到kafka進程是否在運行,也可通過ps aux查看
查看topic副本分佈情況可以通過
./kafka-topics.sh --describe  --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092

Topic: test-topic1      TopicId: U3-YpQ4QQqWM7jQ-8uAxjA PartitionCount: 6       ReplicationFactor: 3    Configs: segment.bytes=1073741824
        Topic: test-topic1      Partition: 0    Leader: 3       Replicas: 3,1,2 Isr: 3,1,2
        Topic: test-topic1      Partition: 1    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
        Topic: test-topic1      Partition: 2    Leader: 2       Replicas: 2,3,1 Isr: 2,3,1
        Topic: test-topic1      Partition: 3    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
        Topic: test-topic1      Partition: 4    Leader: 2       Replicas: 2,3,1 Isr: 2,3,1
        Topic: test-topic1      Partition: 5    Leader: 3       Replicas: 3,1,2 Isr: 3,1,2

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • matplotlib是基於python生態開發的一個可視化繪圖庫,它的出現讓python在數據分析及機器學習方面占了重要的一部分,目前很多數據分析及機器學習相關方面的工程都有使用到這個庫,並且由於其簡單易用,安裝簡單等方面的優勢深得廣大開發者的喜愛。 ...
  • HtmlAgilityPack是一個.NET平臺下的HTML解析庫,它可以將HTML文本轉換為DOM文檔對象,方便我們對HTML文本進行操作和分析。HtmlAgilityPack支持XPath語法,可以通過XPath表達式來獲取DOM節點,同時還提供了一些方便的API,可以實現HTML文本的解析、修 ...
  • MVC 的過濾器(Filters)也翻譯為“篩選器”。但是老周更喜歡翻譯為“過濾器”,意思上更好理解。 既然都叫過濾器了,就是在MVC的操作方法調用前後進行特殊處理的類型。比如: a、此調用是否已授權? b、在模型綁定之前要不要修改數據源?(可能含有兒童不宜的數據) c、在調用MVC方法前要不要改一 ...
  • 需要有的知識點: c# 基礎以及c#高級基礎 Ado.net 基礎 SqlServer 以及MySQL (都需要高級部分) Asp.net Mvc Core 基礎 1. 新手的煩惱 (1) SQL 拼不對,錯還不會找 (2) 開發效率低 (3) 如果發現欄位需要重命名,得挨個地方去修改 (4) 老闆 ...
  • 在 .NET Core 中,日誌是一個非常重要的組件,它可以幫助我們記錄應用程式的運行情況,以便在出現問題時進行排查。在本文中,我們將介紹五個優秀的 .NET Core 日誌框架,它們分別是 Serilog、NLog、Log4Net、Microsoft.Extensions.Logging 和 Lo ...
  • 1. 平均負載 平均負載是指單位時間內,系統處於可運行狀態和不可中斷狀態的平均進程數,也就是平均活躍進程數,它和CPU使用率並沒有直接關係。 可運行狀態的進程是指正在使用CPU或者等待CPU資源的進程。當我們使用類似於"ps"命令時,這些進程通常以"R"狀態(Running或Runnable)顯示。 ...
  • 哈嘍大家好,我是鹹魚 今天我們繼續來講一講 Kafka 當有消息被生產出來的時候,如果沒有指定分區或者指定 key ,那麼消費會按照【輪詢】的方式均勻地分配到所有可用分區中,但不一定按照分區順序來分配 我們知道,在 Kafka 中消費者可以訂閱一個或多個主題,並被分配一個或多個分區 如果一個消費者消 ...
  • Linux 內核從 2.5 版本開始針對 NUMA 架構做了大量優化工作,同時也提供了豐富的工具和介面,可以幫助我們很容易的完成訪問本地記憶體的設置。所以,通過適當的性能調優,可以提供更高的計算能力。 性能優化通常可以通過五個步驟完成 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...