Confluent/KRaft

出自Gea-Suan Lin's Wiki
於 2023年5月31日 (三) 06:42 由 Gslin留言 | 貢獻 所做的修訂 →‎設定
跳至導覽 跳至搜尋

Confluent/KRaftApache Kafka在2.8之後推出的功能,由Confluent包裝的版本,目的是為了取代Apache ZooKeeper的功能。

設定

Controller

這邊是三controller機的設定。

先把/etc/kafka/kraft/controller.properties複製到/etc/kafka/server.properties下,然後把以下的設定值改成對應的值:

process.roles=controller
node.id=1
controller.quorum.voters=1@kafka-controller-1.example.com:19092,2@kafka-controller-2.example.com:19092,3@kafka-controller-3.example.com:19092
listeners=CONTROLLER://kafka-controller-1.example.com:19092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
log.dirs=/opt/kraft-controller-logs

其中需要特別講解的是:

  • node.id每台機器都不同。
  • controller.quorum.votersn@hostname:19092格式中,n就是node.id,而hostname為可以連到的位置(可以是IP)。

接著先產生--cluster-id=後面需要用到的值,三台的值都會是同一個:

kafka-storage random-uuid

接著透過kafka-storage/opt/kraft-controller-logs這個目錄初始化,這邊會用sudo -u cp-kafka要確保目錄權限正確:

sudo -u cp-kafka kafka-storage format --config=/etc/kafka/server.properties --cluster-id=xxxxxxxxxxxxxxxxxxxxxx

相關條目

外部連結