Apache Kafka คืออะไร และวิธีติดตั้งบน Cloud Server
Apache Kafka คือระบบส่งและเก็บสตรีมข้อมูลที่รองรับข้อความปริมาณมหาศาลต่อวินาที ใช้เป็นกระดูกสันหลังในการส่งข้อมูลระหว่างระบบขององค์กรที่มีหลายบริการ
- หมวดหมู่
- DevOps และ CI/CD
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Apache Kafka คืออะไร
Kafka ทำงานเหมือนสมุดบันทึกเหตุการณ์ที่เขียนต่อท้ายไปเรื่อย ๆ ผู้ผลิตข้อมูลส่งเหตุการณ์เข้ามาเก็บใน Topic และผู้บริโภคหลายรายอ่านไปประมวลผลอิสระจากกัน โดยแต่ละรายจำตำแหน่งที่อ่านถึงของตัวเอง
ข้อได้เปรียบสำคัญคือข้อมูลไม่หายไปหลังถูกอ่าน ต่างจากคิวแบบดั้งเดิม ทำให้ระบบใหม่ที่เพิ่งต่อเข้ามาย้อนอ่านเหตุการณ์เก่าได้ และเมื่อระบบปลายทางล่มก็ตามอ่านต่อได้เมื่อกลับมา
ตั้งแต่รุ่นใหม่ Kafka ใช้โหมด KRaft ที่ไม่ต้องพึ่ง ZooKeeper อีกต่อไป ทำให้ติดตั้งและดูแลง่ายขึ้นมาก เหลือเพียงบริการเดียวที่ต้องจัดการ
ความสามารถเด่นของ Apache Kafka
รองรับปริมาณข้อมูลสูงมาก
ออกแบบมาเพื่อรับข้อความหลักแสนถึงหลักล้านรายการต่อวินาทีบนคลัสเตอร์ที่วางถูกต้อง
เก็บข้อมูลย้อนหลังได้
ตั้งระยะเวลาเก็บข้อมูลใน Topic ทำให้ระบบใหม่ย้อนอ่านเหตุการณ์เก่าได้
ผู้บริโภคหลายรายอิสระจากกัน
หลายระบบอ่านข้อมูลชุดเดียวกันไปใช้คนละวัตถุประสงค์ได้พร้อมกัน
ทนต่อการล่ม
ทำสำเนา Partition ข้ามโหนด เมื่อโหนดหนึ่งล่มระบบยังทำงานต่อได้
เชื่อมกับระบบอื่นได้ง่าย
มี Connector สำเร็จรูปสำหรับฐานข้อมูลและระบบวิเคราะห์จำนวนมาก
ใช้ Apache Kafka ทำอะไรได้บ้าง
- ส่งข้อมูลเหตุการณ์จากเว็บและแอปไปยังระบบวิเคราะห์แบบเกือบเรียลไทม์
- เชื่อมระบบภายในองค์กรหลายตัวเข้าด้วยกันโดยไม่ต้องต่อตรงหากันทั้งหมด
- รวบรวมข้อมูลจากอุปกรณ์ IoT จำนวนมาก
- บันทึกเหตุการณ์ธุรกรรมเพื่อประมวลผลต่อและตรวจสอบย้อนหลัง
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| ทดสอบโหนดเดียวสำหรับเรียนรู้และงานพัฒนา | 2 vCPU | 4 GB | NVMe 60 GB |
| แนะนำคลัสเตอร์สามโหนดสำหรับงานจริง | 4 vCPU ต่อโหนด | 16 GB ต่อโหนด | NVMe 500 GB ต่อโหนด |
| ปริมาณสูงข้อมูลหลายร้อยกิกะไบต์ต่อวันและเก็บย้อนหลังนาน | 8 vCPU ขึ้นไปต่อโหนด | 32 GB ขึ้นไปต่อโหนด | NVMe 1 TB ขึ้นไปต่อโหนด |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Apache Kafka บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Java 17 ขึ้นไป
- ดิสก์ที่มีพื้นที่มากพอ เพราะ Kafka เก็บข้อมูลตามระยะเวลาที่กำหนด
- อย่างน้อยสามโหนดสำหรับงาน Production เพื่อให้ทำสำเนาข้อมูลได้
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Java
sudo apt update sudo apt -y install openjdk-21-jre-headless - 2
ดาวน์โหลดและแตกไฟล์ Kafka
ตรวจเลขเวอร์ชันล่าสุดจากเว็บทางการก่อนดาวน์โหลด
cd /opt sudo curl -LO https://downloads.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz sudo tar -xzf kafka_2.13-3.9.0.tgz sudo mv kafka_2.13-3.9.0 kafka - 3
สร้าง Cluster ID และจัดรูปแบบที่เก็บข้อมูล
cd /opt/kafka KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid) bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties - 4
เริ่มบริการ
sudo /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties - 5
สร้าง Topic และทดสอบส่งข้อความ
bin/kafka-topics.sh --create --topic orders --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1 bin/kafka-console-producer.sh --topic orders --bootstrap-server localhost:9092 bin/kafka-console-consumer.sh --topic orders --from-beginning --bootstrap-server localhost:9092 - 6
ตั้งเป็นบริการของระบบ
สร้างไฟล์ systemd unit เพื่อให้ Kafka เริ่มทำงานอัตโนมัติหลังรีบูตและรีสตาร์ตเมื่อล่ม
บนงานจริงควรตั้งอย่างน้อยสามโหนดและกำหนด replication factor เป็น 3 เพื่อไม่ให้ข้อมูลหายเมื่อโหนดหนึ่งเสีย
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 9092 | TCP | การเชื่อมต่อของ Producer และ Consumer (เปิดเฉพาะวงภายใน) |
| 9093 | TCP | การสื่อสารระหว่างโหนดในโหมด KRaft |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ไม่เปิดพอร์ต Kafka สู่อินเทอร์เน็ต ให้ใช้เฉพาะภายใน Private Network
- เปิด TLS และการยืนยันตัวตนด้วย SASL สำหรับสภาพแวดล้อมที่มีหลายทีมใช้ร่วมกัน
- กำหนดสิทธิ์การเข้าถึงต่อ Topic ด้วย ACL
- ตั้งนโยบายเก็บข้อมูลให้เหมาะกับพื้นที่ดิสก์ ไม่เช่นนั้นดิสก์เต็มแล้วคลัสเตอร์หยุดรับข้อมูล
- เฝ้าระวังพื้นที่ดิสก์และ Lag ของ Consumer ด้วยระบบมอนิเตอร์
ทำไมควรรัน Apache Kafka บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
สร้างคลัสเตอร์สามโหนดบน Cloud Server ในวง Private Network ในไทย ได้ทั้งความเร็วและไม่มีค่าทราฟฟิกภายใน
ขยายดิสก์ได้เมื่อปริมาณข้อมูลโตขึ้น โดยไม่ต้องย้ายคลัสเตอร์
ข้อมูลเหตุการณ์ของลูกค้าอยู่ในประเทศ ตอบโจทย์องค์กรที่มีข้อกำหนดด้าน PDPA
คำถามที่พบบ่อยเกี่ยวกับ Apache Kafka
Kafka ต่างจาก RabbitMQ อย่างไร
RabbitMQ เป็นคิวข้อความแบบดั้งเดิมที่เหมาะกับการกระจายงานให้ผู้ทำงานหลายตัว ส่วน Kafka เป็นบันทึกเหตุการณ์ที่เก็บข้อมูลไว้ให้อ่านซ้ำได้และรองรับปริมาณสูงกว่ามาก ถ้าต้องการคิวงานทั่วไป RabbitMQ ง่ายกว่า ถ้าต้องการสตรีมข้อมูลจำนวนมากและเก็บย้อนหลัง Kafka ตอบโจทย์กว่า
ต้องใช้ ZooKeeper ไหม
ไม่ต้องแล้วสำหรับรุ่นใหม่ที่ใช้โหมด KRaft ซึ่งรวมการจัดการคลัสเตอร์ไว้ในตัว ทำให้จำนวนบริการที่ต้องดูแลลดลงครึ่งหนึ่ง
องค์กรขนาดกลางจำเป็นต้องใช้ Kafka ไหม
ไม่จำเป็นเสมอไป ถ้าปริมาณข้อความไม่สูงและต้องการแค่คิวงาน RabbitMQ หรือ Redis จะเรียบง่ายกว่ามาก Kafka เริ่มคุ้มเมื่อมีหลายระบบต้องการข้อมูลชุดเดียวกัน หรือปริมาณเหตุการณ์สูงจนคิวธรรมดารับไม่ไหว
ทางเลือกอื่นที่คล้ายกับ Apache Kafka
แอปอื่นในหมวด DevOps และ CI/CD
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Apache Kafka ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด