手動部署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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...