「Confluent/KRaft」:修訂間差異
跳至導覽
跳至搜尋
第23行: | 第23行: | ||
* <code>node.id</code>每台機器都不同。 | * <code>node.id</code>每台機器都不同。 | ||
* <code>controller.quorum.voters</code>的<code>n@hostname:19092</code>格式中,<code>n</code>就是<code>node.id</code>,而hostname為可以連到的位置(可以是IP)。 | * <code>controller.quorum.voters</code>的<code>n@hostname:19092</code>格式中,<code>n</code>就是<code>node.id</code>,而hostname為可以連到的位置(可以是IP)。 | ||
* 目前官方沒有比較好 | * 目前官方沒有比較好的TCP port選擇,社群蠻多人都是設定19092。 | ||
* <code>CONTROLLER</code>是沿襲[[Apache Kafka]]文件的傳統,你看完一堆文件後不知道他到底是什麼意思,文件自身也互相矛盾。 | * <code>CONTROLLER</code>是沿襲[[Apache Kafka]]文件的傳統,你看完一堆文件後不知道他到底是什麼意思,文件自身也互相矛盾。 | ||
於 2023年5月31日 (三) 06:51 的修訂
Confluent/KRaft是Apache 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.voters
的n@hostname:19092
格式中,n
就是node.id
,而hostname為可以連到的位置(可以是IP)。- 目前官方沒有比較好的TCP port選擇,社群蠻多人都是設定19092。
CONTROLLER
是沿襲Apache Kafka文件的傳統,你看完一堆文件後不知道他到底是什麼意思,文件自身也互相矛盾。
接著先產生後續kafka-storage
需要用的值,首先是要產生出一組叫做「UUID」的字串(22 chars,對應到Base62或是Base64的entropy都夠128bits,但格式不是常見的UUID字串表示法)。這邊要注意,產生一次就可以,三台用的值都會是同一個:
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
設定完成後可以啟動,然後看一下狀態與log檔案:
sudo service confluent-kafka start
sudo service confluent-kafka status
sudo tail -F /var/log/kafka/server.log
都沒問題後可以設定開機跑起來:
sudo systemctl enable confluent-kafka