Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ว่าง ๆ มาติดตั้ง Apache Kafka แบบไม่มี zookeeper แก้เบื่อกัน (KRaft)

$
0
0

ตั้งแตก Apache Kafka 2.8 นั้นมี configuration ของ KRaft มาให้
ช่วยทำให้เราสามารถติดตั้ง cluster ของ Apache Kafka โดยไม่มี Zookeeper ได้
แต่ยังไม่แนะนำสำหรับบน production นะ

ในวันว่าง ๆ มาลองติดตั้งเล่นกันหน่อย
เพื่อทำความรู้จักในเบื้องต้น

เริ่มด้วยการ Download Apache Kafka มาก่อน

โดยใช้ version 3.10
ต้องการสร้าง node ใน cluster จำนวน 3 node ดังนี้

[gist id="802a0bb6faf9c2bb5fe867ad46a65431" file="1.txt"]

จากนั้นทำการ config ที่ไฟล์ /config/kraft/server.properties

เพื่อเปิดใช้งาน KRaft
ในตัวอย่างจะสร้างขึ้นมา 3 ไฟล์ แยกเป็นแต่ละ nodeใน cluster นั่นเอง ดังนี้

  • server-01.properties
  • server-02.properties
  • server-03.properties

สิ่งที่ configเพิ่มสำหรับเปิดใช้งาน KRaft นั้น ประกอบไปด้วย

  • node.id กำหนดเป็น 1, 2, 3 ตามลำดับไปเลย คือ unique ของแต่ละ node ใน cluster นั่นเอง ซ้ำกันไม่ได้
  • process.roles โดยที่แต่ละ node สามารถมี role ได้ทั้ง broker หรือ controller ของ KRaft อยู่ที่ความต้องการ จากตัวอย่างจะกำหนดให้ทุก node เป็นทั้งคู่เลย แต่ถ้าไม่กำหนดจะเป็น zookeeper เช่นเดิม
  • กำหนดค่าให้แต่ละ broker และ controller คุยกันผ่าน inter.broker.listener.name และ controller.listener.names
  • กำหนด port ของ broker และ controller ของทั้ง 3 node โดยที่ port default ของ broker=9092 และ controller=19092 ด้วยการกำหนดค่าของ listeners
  • กำหนด path ในการเก็บ log ผ่าน log.dirs
  • กำหนด connection security ผ่าน listener.security.protocol.map
  • กำหนด controller ทั้งหมดใน cluster ผ่าน controller.quorum.voters

จะกำหนดเยอะไปไหนนะ ?

ตัวอย่างของ server-01.properties สำหรับ node ที่ 1

[gist id="802a0bb6faf9c2bb5fe867ad46a65431" file="server-01.properties"]

เมื่อสร้าง config ของแต่ละ node เรียบร้อยแล้ว ทำการสร้าง cluster

จากนั้นก็ทำการ add node เข้า cluster ต่อไป ดังนี้

[gist id="802a0bb6faf9c2bb5fe867ad46a65431" file="2.txt"]

และ start server ของแต่ละ node ขึ้นมา

[gist id="802a0bb6faf9c2bb5fe867ad46a65431" file="3.txt"]

จากนั้นก็ทำการสร้าง Topic และดูรายละเอียดได้แล้ว

  • topic ชื่อว่า kraft-test
  • partition = 3
  • replication factor = 3
[gist id="802a0bb6faf9c2bb5fe867ad46a65431" file="4.txt"]

สุดท้ายก็ลองสร้าง message เข้า topic ทั้งฝั่ง producer และ consumer

เท่าที่ก็เรียบร้อยแล้วสำหรับการลองใช้งาน KRaft ใน Apache Kafka
เน้นย้ำว่ายังเป็น experiment อยู่นะ
ไม่แนะนำให้ขึ้น production
แต่ทำความรู้จักไว้ก่อน เพราะว่ามันคือสิ่งที่มาแน่ ๆ นั่นเอง


Viewing all articles
Browse latest Browse all 1997

Trending Articles