自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Kafka 4.0 發(fā)布,徹底移除 ZooKeeper!

開發(fā) 前端
Kafka 4.0 默認(rèn)允許在 KRaft 模式下,大大簡(jiǎn)化了集群的部署和管理,消除了集成 ZooKeeper 的復(fù)雜性。在 KRaft 模式下,一些配置、指標(biāo)和功能發(fā)生了不小的變化,今天我們來看一下都有哪些改變。

大家好,我是君哥。

最近 Apache Kafka 4.0 版本發(fā)布,這是 Kafka 的一個(gè)重要里程碑。Kafka 移除 ZooKeeper 早在幾年前就開始準(zhǔn)備,4.0 版本是第一個(gè)可以完全不使用 ZooKeeper 的版本。

Kafka 4.0 默認(rèn)允許在 KRaft 模式下,大大簡(jiǎn)化了集群的部署和管理,消除了集成 ZooKeeper 的復(fù)雜性。

在 KRaft 模式下,一些配置、指標(biāo)和功能發(fā)生了不小的變化,今天我們來看一下都有哪些改變。

刪除了密碼編碼相關(guān)的配置

這些配置在 ZooKeeper 模式下使用,用來定義和備份密碼,這個(gè)密鑰用于加密加密敏感數(shù)據(jù)(如密碼)。需要指定加密的算法和密鑰生成方法(如 AES、RSA),并控制密鑰長(zhǎng)度和加密強(qiáng)度。相關(guān)參數(shù)如下:

password.encoder.secret
password.encoder.old.secret
password.encoder.keyfactory.algorithm
password.encoder.cipher.algorithm
password.encoder.key.length
password.encoder.iterations

在 KRaft 模式下,Kafka 將敏感數(shù)據(jù)存儲(chǔ)在 records,這些敏感數(shù)據(jù)不需要加密。

移除下面配置

Removed control.plane.listener.name

Kafka 依賴 ZooKeeper 管理元數(shù)據(jù),但是一些內(nèi)部操作(比如 Broker Controller 和普通 Broker 之間通信)依然需要 Kafka 內(nèi)部控制面板來協(xié)調(diào)。

在 KRaft 模式下,Kafka 消除了對(duì) ZooKeeper 的依賴,控制面板功能完全集成到 Kafka 內(nèi)部。處理角色明確分開:brokers 處理與數(shù)據(jù)相關(guān)的請(qǐng)求,而 broker controllers 管理跟元數(shù)據(jù)相關(guān)的請(qǐng)求。controllers 使用 Raft 協(xié)議進(jìn)行內(nèi)部通信,操作方式與 ZooKeeper 模型不同。使用以下參數(shù)來配置控制面板監(jiān)聽器:

controller.listener.names
listeners
listener.security.protocol.map

刪除優(yōu)雅停服相關(guān)配置

使用外部注冊(cè)中心,多數(shù)情況是需要配置優(yōu)雅停服的。這些配置在 ZooKeeper 模式下用于定義主動(dòng)停服的最大重試次數(shù)和重試回退時(shí)間。它可以降低意外 Controller 變更和數(shù)據(jù)不一致的風(fēng)險(xiǎn)。

controlled.shutdown.max.retries
controlled.shutdown.retry.backoff.ms

在 KRaft 模式下,Kafka 使用 Raft 協(xié)議來管理元數(shù)據(jù)。Broker 關(guān)閉過程跟基于仲裁模式的 ZooKeeper 模式不同。Raft 協(xié)議的 Controller 切換依賴自動(dòng)領(lǐng)導(dǎo)者切換,元數(shù)據(jù)由 Controller 更新,關(guān)閉過程更加可靠和高效。

刪除了生成 Broker id 相關(guān)的配置

這些配置在 ZooKeeper 模式下用于自動(dòng)生成 Broker id 并控制 Broker id 生成過程。

reserved.broker.max.id
broker.id.generation.enable

node id

Kafka在 KRaft 模式下使用 node id 來標(biāo)識(shí) server。

node.id

刪除了 Broker 協(xié)議版本相關(guān)的配置

inter.broker.protocol.version

這些配置在 ZooKeeper 模式下用于定義 Broker 之間的通信協(xié)議版本。在 KRaft 模式下,Kafka 使用 metadata.version 來控制集群的特征級(jí)別,并且可以使用 bin/Kafka-features.sh 腳本進(jìn)行管理。

移除 ZooKeeper 相關(guān)的動(dòng)態(tài)配置

advertised.listeners

在 KRaft 模式下,要修改這些配置,就需要重啟 Broker。

刪除了領(lǐng)導(dǎo)者不平衡配置

leader.imbalance.per.broker.percentage

這個(gè)配置只在 ZooKeeper 中使用。用于限制 ZooKeeper 中的選舉領(lǐng)導(dǎo)者的頻率。

移除 ZooKeeper 相關(guān)配置

zookeeper.connect
zookeeper.session.timeout.ms
zookeeper.connection.timeout.ms
zookeeper.set.acl
zookeeper.max.in.flight.requests
zookeeper.ssl.client.enable
zookeeper.clientCnxnSocket
zookeeper.ssl.keystore.location
zookeeper.ssl.keystore.password
zookeeper.ssl.keystore.type
zookeeper.ssl.truststore.location
zookeeper.ssl.truststore.password
zookeeper.ssl.truststore.type
zookeeper.ssl.protocol
zookeeper.ssl.enabled.protocols
zookeeper.ssl.cipher.suites
zookeeper.ssl.endpoint.identification.algorithm
zookeeper.ssl.crl.enable
zookeeper.ssl.ocsp.enable

刪除了 ZooKeeper 相關(guān)監(jiān)控指標(biāo)

下面參數(shù)監(jiān)控網(wǎng)絡(luò)處理器平均空閑率:

ControlPlaneNetworkProcessorAvgIdlePercent

下面指標(biāo)監(jiān)控所有處理器上斷開的連接總數(shù):

ControlPlaneExpiredConnectionsKilledCount

在 KRaft 模式下,Kafka 提供了網(wǎng)絡(luò)處理器連接過期指標(biāo)。指標(biāo)如下:

NetworkProcessorAvgIdlePercent
ExpiredConnectionsKilledCount

刪除了 ZooKeeper 獨(dú)有指標(biāo)

kafka.controller:type=ControllerChannelManager,name=QueueSize
kafka.controller:type=ControllerChannelManager,name=RequestRateAndQueueTimeMs
kafka.controller:type=ControllerEventManager,name=EventQueueSize
kafka.controller:type=ControllerEventManager,name=EventQueueTimeMs
kafka.controller:type=ControllerStats,name=AutoLeaderBalanceRateAndTimeMs
kafka.controller:type=ControllerStats,name=ControlledShutdownRateAndTimeMs
kafka.controller:type=ControllerStats,name=ControllerChangeRateAndTimeMs
kafka.controller:type=ControllerStats,name=ControllerShutdownRateAndTimeMs
kafka.controller:type=ControllerStats,name=IdleRateAndTimeMs
kafka.controller:type=ControllerStats,name=IsrChangeRateAndTimeMs
kafka.controller:type=ControllerStats,name=LeaderAndIsrResponseReceivedRateAndTimeMs
kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs
kafka.controller:type=ControllerStats,name=ListPartitionReassignmentRateAndTimeMs
kafka.controller:type=ControllerStats,name=LogDirChangeRateAndTimeMs
kafka.controller:type=ControllerStats,name=ManualLeaderBalanceRateAndTimeMs
kafka.controller:type=KafkaController,name=MigratingZkBrokerCount
kafka.controller:type=ControllerStats,name=PartitionReassignmentRateAndTimeMs
kafka.controller:type=ControllerStats,name=TopicChangeRateAndTimeMs
kafka.controller:type=ControllerStats,name=TopicDeletionRateAndTimeMs
kafka.controller:type=KafkaController,name=TopicsIneligibleToDeleteCount
kafka.controller:type=ControllerStats,name=TopicUncleanLeaderElectionEnableRateAndTimeMs
kafka.controller:type=ControllerStats,name=UncleanLeaderElectionEnableRateAndTimeMs
kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec
kafka.controller:type=ControllerStats,name=UpdateFeaturesRateAndTimeMs
kafka.controller:type=ControllerStats,name=UpdateMetadataResponseReceivedRateAndTimeMs
kafka.controller:type=KafkaController,name=ActiveBrokerCount
kafka.controller:type=KafkaController,name=ActiveControllerCount
kafka.controller:type=KafkaController,name=ControllerState
kafka.controller:type=KafkaController,name=FencedBrokerCount
kafka.controller:type=KafkaController,name=GlobalPartitionCount
kafka.controller:type=KafkaController,name=GlobalTopicCount
kafka.controller:type=KafkaController,name=OfflinePartitionsCount
kafka.controller:type=KafkaController,name=PreferredReplicaImbalanceCount
kafka.controller:type=KafkaController,name=ReplicasIneligibleToDeleteCount
kafka.controller:type=KafkaController,name=ReplicasToDeleteCount
kafka.controller:type=KafkaController,name=TopicsToDeleteCount
kafka.controller:type=KafkaController,name=ZkMigrationState
kafka.server:type=DelayedOperationPurgatory,name=PurgatorySize,delayedOperation=ElectLeader
kafka.server:type=DelayedOperationPurgatory,name=PurgatorySize,delayedOperation=topic
kafka.server:type=DelayedOperationPurgatory,name=NumDelayedOperations,delayedOperation=ElectLeader
kafka.server:type=DelayedOperationPurgatory,name=NumDelayedOperations,delayedOperation=topic
kafka.server:type=SessionExpireListener,name=SessionState
kafka.server:type=SessionExpireListener,name=ZooKeeperAuthFailuresPerSec
kafka.server:type=SessionExpireListener,name=ZooKeeperDisconnectsPerSec
kafka.server:type=SessionExpireListener,name=ZooKeeperExpiresPerSec
kafka.server:type=SessionExpireListener,name=ZooKeeperReadOnlyConnectsPerSec
kafka.server:type=SessionExpireListener,name=ZooKeeperSaslAuthenticationsPerSec
kafka.server:type=SessionExpireListener,name=ZooKeeperSyncConnectsPerSec
kafka.server:type=ZooKeeperClientMetrics,name=ZooKeeperRequestLatencyMs

最后

移除了這么多配置,部署不用再考慮 ZooKeeper,架構(gòu)上整潔了太多。

責(zé)任編輯:武曉燕 來源: 君哥聊技術(shù)
相關(guān)推薦

2021-04-28 18:28:44

KafkaZookeeper

2025-03-26 08:30:07

KafkaZooKeeper部署

2021-04-30 08:29:16

KafkaZooKeeper分布式

2015-04-16 10:47:08

Linux計(jì)算機(jī)重啟時(shí)代

2022-02-28 10:38:13

Kotlin插件Android

2022-12-28 09:17:53

ApacheZookeeperProposals

2024-10-17 16:41:57

KafkaZooKeeper

2012-11-14 09:31:13

CloudStackIaaSCitrix

2009-02-25 09:35:12

LinuxBASH 4.0OS X v10.4

2024-12-27 00:37:46

2022-05-10 15:24:34

KafkaZooKeeperKafka Raft

2020-10-20 18:40:15

微軟EdgeFlash Playe

2023-06-24 22:14:23

2010-01-26 09:46:16

2021-06-18 07:34:12

Kafka中間件微服務(wù)

2021-04-21 17:54:02

KafkaZookeeper場(chǎng)景

2021-04-15 16:11:51

微軟瀏覽器Windows 10

2013-11-11 09:27:01

思科收購(gòu)Insieme

2024-03-18 08:11:27

jQuery 4.0前端開發(fā)web開發(fā)

2018-07-05 10:55:25

數(shù)據(jù)庫(kù)MongoDB 4.0多文檔事務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)