国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【運(yùn)維】Kafka高可用: KRaft(不依賴zookeeper)集群搭建

這篇具有很好參考價(jià)值的文章主要介紹了【運(yùn)維】Kafka高可用: KRaft(不依賴zookeeper)集群搭建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文主要介紹了

  • kafka raft集群架構(gòu):
    與舊架構(gòu)的不同點(diǎn),有哪些優(yōu)勢(shì),哪些問題
    架構(gòu)成員有哪些,怎么規(guī)劃。
  • 三節(jié)點(diǎn)集群安裝、啟動(dòng)與測(cè)試

一. kafka kraft 集群介紹

1. KRaft架構(gòu)

kafka不依賴zk,kafka,運(yùn)維,kafka,zookeeper

在舊的架構(gòu)中

Kafka集群包含多個(gè)broker節(jié)點(diǎn)和一個(gè)ZooKeeper 集群。如上圖集群結(jié)構(gòu):4個(gè)broker節(jié)點(diǎn)和3個(gè)ZooKeeper節(jié)點(diǎn)。Kafka 集群的controller在被選中后,會(huì)從 ZooKeeper 中加載它的狀態(tài)。選舉controller的過程是由zookeeper自動(dòng)完成的。

?

在新的架構(gòu)中

三個(gè) controller 節(jié)點(diǎn)替代三個(gè)ZooKeeper節(jié)點(diǎn)。 controller節(jié)點(diǎn)和 broker 節(jié)點(diǎn)運(yùn)行在不同的進(jìn)程中。這些controller 節(jié)點(diǎn)中會(huì)選擇一個(gè)成為Leader。新的架構(gòu)中,controller不會(huì)向 broker 推送更新,而是 broker 從 controller Leader 拉取元數(shù)據(jù)的更新信息。

盡管 controller 進(jìn)程在邏輯上與 broker 進(jìn)程是分離的,但它們不需要在物理上分離。即在某些情況下,部分或所有 controller 進(jìn)程和 broker 進(jìn)程是可以是同一個(gè)進(jìn)程,即一個(gè)broker節(jié)點(diǎn)即是broker也是controller。

?

2. Controller 服務(wù)器

在KRaft模式下,通過指定某些服務(wù)器作為控制器,在Server.properties的Process.roles 參數(shù)里面配置。

不像基于ZooKeeper的模式,(zk去做的事情,我們手動(dòng)配置不了)任何服務(wù)器都可以成為控制器。這帶來了一個(gè)非常優(yōu)秀的好處,即如果我們認(rèn)為 controller 節(jié)點(diǎn)的負(fù)載會(huì)比其他只當(dāng)做broker節(jié)點(diǎn)高,那么可以為 controller 節(jié)點(diǎn)使用高配的機(jī)器。這就解決了在1.0, 2.0架構(gòu)中, controller 節(jié)點(diǎn)會(huì)比其他節(jié)點(diǎn)負(fù)載高,卻無法控制哪些節(jié)點(diǎn)能成為 controller 節(jié)點(diǎn)的問題。

被(手動(dòng)配置)選中的 controller 節(jié)點(diǎn)將參與元數(shù)據(jù)集群的選舉。對(duì)于當(dāng)前的 controller 節(jié)點(diǎn),每個(gè)控制器服務(wù)器要么是Active的,要么是Standby的。

用戶通常會(huì)選擇3或5臺(tái)(奇數(shù)臺(tái))服務(wù)器成為 controller 節(jié)點(diǎn),3和5的個(gè)數(shù)問題和Raft的原理一樣,少數(shù)服從多數(shù)。

就像使用ZooKeeper一樣,為了保持可用性,你必須讓大部分 controller 保持active狀態(tài)。如果你有3個(gè)controller,你可以容忍1個(gè)故障;在5個(gè)控制器中,您可以容忍2個(gè)故障。

?

3. Process Roles

在KRaft模式下,每個(gè)Kafka服務(wù)器都有一個(gè)新的配置項(xiàng),叫做process.roles, 這個(gè)參數(shù)可以有以下值:

  • 如果process.roles = broker, 服務(wù)器在KRaft模式中充當(dāng) broker。
  • 如果process.roles = controller, 服務(wù)器在KRaft模式下充當(dāng) controller。
  • 如果process.roles = broker,controller,服務(wù)器在KRaft模式中同時(shí)充當(dāng) broker 和controller。

注意:如果process.roles 沒有設(shè)置。那么集群就假定是運(yùn)行在ZooKeeper模式下。

對(duì)于簡單的場(chǎng)景,組合節(jié)點(diǎn)更容易運(yùn)行和部署,可以避免多進(jìn)程運(yùn)行時(shí),JVM帶來的相關(guān)的固定內(nèi)存開銷。但controller將較少地與系統(tǒng)的其余部分隔離。例如,如果代理上的活動(dòng)導(dǎo)致內(nèi)存不足,controller也會(huì)受到例如OOM的影響。

?

4. Quorum Voters

系統(tǒng)中的所有節(jié)點(diǎn)都必須設(shè)置 controller.quorum.voters 配置。用于配置所有想成為controller的節(jié)點(diǎn)。

?

如果你有10個(gè)broker和 3個(gè)controller1,分別命名為controller1、controller2、controller3,你可能在 controller1上有以下配置:

process.roles=controller
node.id=1
listeners=CONTROLLER://controller1.example.com:9093
controller.quorum.voters=1@controller1.com:9093,2@controller2.com:9093,3@controller3.com:9093

controller.quorum.voters配置格式說明:nodeid1@controller-node1:9093,nodeid2@controller-node2:9093,nodeid3@controller-node3:9093

?
如果你只有三個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是controller,broker角色,那么每個(gè)節(jié)點(diǎn)都這樣配置

process.roles=broker,controller
listeners=CONTROLLER://controller1.example.com:9093
controller.quorum.voters=1@controller1.com:9093,2@controller2.com:9093,3@controller3.com:9093

?

5. kraft的工作原理 ing

KRaft: Apache Kafka Without ZooKeeper

?

二. 集群安裝

進(jìn)行三個(gè)節(jié)點(diǎn)的安裝,如下規(guī)劃:

節(jié)點(diǎn) node.id 角色
node1 1 controller,broker
node2 2 controller,broker
node3 3 controller,broker

1. 安裝

kafka下載: https://kafka.apache.org/downloads
解壓

tar -zxvf kafka_2.13-3.0.0.tgz

1.1. 配置

在node1中配置:server.properties

在{KAFKA_HOME}/config/kraft/server.properties

############################# Server Basics #############################

java.home=/opt/jvm/java

# The role of this server. Setting this puts us in KRaft mode
process.roles=broker,controller

# The node id associated with this instance's roles
node.id={{broker_id}}

# The connect string for the controller quorum
# 每個(gè)節(jié)點(diǎn)配置都一樣:格式:{{broker_id_1}}@{{hostname1}}:9093,{{broker_id_2}}@{{hostname2}}:9093,{{broker_id_3}}@{{hostname3}}:9093
controller.quorum.voters={{voters}}


############################# Log Basics #############################

# A comma separated list of directories under which to store log files
# 數(shù)據(jù)存儲(chǔ)目錄
log.dirs=/opt/kafka3.5.0/logs

配置node2、node3,其余兩個(gè)節(jié)點(diǎn)配置除了node.id不同,其他配置都相同。node.id配置如上節(jié)點(diǎn)規(guī)劃。

?

1.2. 格式化

生成集群 ID

整個(gè)集群唯一的ID標(biāo)志

$ ./bin/kafka-storage.sh random-uuid
qGuAL6YzRyWQdzt4cQTZgA

?

格式化存儲(chǔ)目錄

使用上面生成集群 uuid, 在三個(gè)節(jié)點(diǎn)上都執(zhí)行格式化存儲(chǔ)目錄命令:

$ ./bin/kafka-storage.sh format \
-t xtzWWN4bTjitpL3kfd9s5g \
-c ./config/kraft/server.properties

?

2. 啟動(dòng)測(cè)試

2.1. 啟功節(jié)點(diǎn)服務(wù)

在每個(gè)節(jié)點(diǎn)上執(zhí)行

$ ./bin/kafka-server-start.sh ./config/kraft/server.properties

?

2.2. 測(cè)試

# 創(chuàng)建topic
$ bin/kafka-topics.sh --create \
--topic quickstart-events \
--bootstrap-server localhost:9092


# 查看topic信息
$ bin/kafka-topics.sh --describe \
--topic quickstart-events \
--bootstrap-server localhost:9092

Topic: quickstart-events        TopicId: NPmZHyhbR9y00wMglMH2sg PartitionCount: 1       ReplicationFactor: 1	Configs:
    Topic: quickstart-events Partition: 0    Leader: 0   Replicas: 0 Isr: 0


# 生產(chǎn)消息
$ bin/kafka-console-producer.sh \
--topic quickstart-events  \
--bootstrap-server localhost:9092

This is my first event
This is my second event


#消費(fèi)數(shù)據(jù)
$ bin/kafka-console-consumer.sh \
--topic quickstart-events \
--from-beginning --bootstrap-server localhost:9092

This is my first event
This is my second event

?文章來源地址http://www.zghlxwxcb.cn/news/detail-775496.html

到了這里,關(guān)于【運(yùn)維】Kafka高可用: KRaft(不依賴zookeeper)集群搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kafka 3.4.0 kraft 集群搭建

    Apache 軟件基金會(huì)發(fā)布了包含許多新特性和改進(jìn)的 Kafka 3.3.1。這是第一個(gè)標(biāo)志著可以在生產(chǎn)環(huán)境中使用 KRaft(Kafka Raft)共識(shí)協(xié)議的版本。在幾年的開發(fā)過程中,它先是在 Kafka 2.8 早期訪問版本中發(fā)布,然后又在 Kafka 3.0 預(yù)覽版本中發(fā)布。 KRaft 是一種共識(shí)協(xié)議,可以直接在 Kafk

    2024年02月13日
    瀏覽(19)
  • Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆級(jí)超詳細(xì)含圖文)

    Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆級(jí)超詳細(xì)含圖文)

    說明: 本篇將詳細(xì)介紹用二進(jìn)制安裝包部署hadoop等組件,注意事項(xiàng),各組件的使用,常用的一些命令,以及在部署中遇到的問題解決思路等等,都將詳細(xì)介紹。 ip hostname 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 1.2.1系統(tǒng)版本 1.2.2內(nèi)存建議最少4g、2cpu、50G以上的磁盤容量 本次

    2024年02月12日
    瀏覽(37)
  • 實(shí)操Hadoop大數(shù)據(jù)高可用集群搭建(hadoop3.1.3+zookeeper3.5.7+hbase3.1.3+kafka2.12)

    前言 純實(shí)操,無理論,本文是給公司搭建測(cè)試環(huán)境時(shí)記錄的,已經(jīng)按照這一套搭了四五遍大數(shù)據(jù)集群了,目前使用還未發(fā)現(xiàn)問題。 有問題麻煩指出,萬分感謝! PS:Centos7.9、Rocky9.1可用 集群配置 ip hostname 系統(tǒng) CPU 內(nèi)存 系統(tǒng)盤 數(shù)據(jù)盤 備注 192.168.22.221 hadoop1 Centos7.9 4 16 250G 19

    2024年02月03日
    瀏覽(26)
  • Zookeeper 和 Kafka 工作原理及如何搭建 Zookeeper集群 + Kafka集群

    Zookeeper 和 Kafka 工作原理及如何搭建 Zookeeper集群 + Kafka集群

    目錄 1 Zookeeper 1.1 Zookeeper 定義 1.2 Zookeeper 工作機(jī)制 1.3 Zookeeper 特點(diǎn) 1.4 Zookeeper 數(shù)據(jù)結(jié)構(gòu) 1.5 Zookeeper 應(yīng)用場(chǎng)景 1.6 Zookeeper 選舉機(jī)制 2 部署 Zookeeper 集群 2.1 安裝前準(zhǔn)備 2.2 安裝 Zookeeper 3 Kafka 3.1 為什么需要消息隊(duì)列(MQ) 3.2 使用消息隊(duì)列的好處 3.3 消息隊(duì)列的兩種模式 3.4 Kafka 定義

    2024年02月08日
    瀏覽(50)
  • jdk+zookeeper+kafka 搭建kafka集群

    jdk+zookeeper+kafka 搭建kafka集群

    環(huán)境準(zhǔn)備 環(huán)境資源包: jdk-8u341-linux-x64.tar.gz kafka_2.12-2.2.0.tgz zookeeper-3.4.14.tar.gz server-id ip 狀態(tài) server1 10.206.120.10 leader server2 10.206.120.2 follower server3 10.206.120.3 follower 一、安裝jdk 因?yàn)閗afka需要Java環(huán)境,所以優(yōu)先配置jdk環(huán)境,若已經(jīng)配置了java環(huán)境,此步驟可以忽略 二、zookeeper集群

    2024年02月04日
    瀏覽(34)
  • kafka---- zookeeper集群搭建

    Hostname Ip Root Prac-zk-133 172.16.144.133 root Prac-zk-134 172.16.144.134 root Prac-zk-135 172.16.144.135 root 172.16.144.133 Prac-zk-133 172.16.144.134 Prac-zk-134 172.16.144.135 Prac-zk-135 zkServer.sh start-foreground 使用它啟動(dòng)會(huì)出現(xiàn)地址已在使用 Zookeeper啟動(dòng)失?。╦ava.net.BindException: 地址已在使用 端口被占用了,把218

    2024年02月11日
    瀏覽(23)
  • kafka 集群 ZooKeeper 模式搭建

    kafka 集群 ZooKeeper 模式搭建

    Apache?Kafka是一個(gè)開源分布式事件流平臺(tái),被數(shù)千家公司用于高性能數(shù)據(jù)管道、流分析、數(shù)據(jù)集成和關(guān)鍵任務(wù)應(yīng)用程序 Kafka 官網(wǎng):Apache Kafka 關(guān)于ZooKeeper的棄用 根據(jù) Kafka官網(wǎng)信息,隨著Apache Kafka 3.5版本的發(fā)布,Zookeeper現(xiàn)已被標(biāo)記為已棄用。未來計(jì)劃在Apache Kafka(4.0版)的下一

    2024年02月05日
    瀏覽(22)
  • zookeeper + kafka集群搭建詳解

    2023年04月11日
    瀏覽(18)
  • Docker 搭建 zookeeper、kafka 集群

    Docker 搭建 zookeeper、kafka 集群

    首先創(chuàng)建一個(gè)自定義網(wǎng)絡(luò),后續(xù)的所有容器都放入同一個(gè)內(nèi)網(wǎng)中,容器之間還可以通過容器名稱進(jìn)行直接訪問,在后續(xù)的配置中只需要寫明容器名稱即可,會(huì)自動(dòng)找到對(duì)應(yīng)的IP地址,防止重啟容器后IP地址發(fā)生變化時(shí),還要去修改配置文件的操作 創(chuàng)建目錄 啟動(dòng)zookeeper 進(jìn)入zo

    2024年02月10日
    瀏覽(23)
  • Kafka集群部署 (KRaft模式集群)

    Kafka集群部署 (KRaft模式集群)

    KRaft 模式是 Kafka 在 3.0 版本中引入的新模式。KRaft 模式使用了 Raft 共識(shí)算法來管理 Kafka 集群元數(shù)據(jù)。Raft 算法是一種分布式共識(shí)算法,具有高可用性、可擴(kuò)展性和安全性等優(yōu)勢(shì)。 在 KRaft 模式下,Kafka 集群中的每個(gè) Broker 都具有和 Zookeeper 類似的角色。每個(gè) Broker 都參與管理

    2024年02月03日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包