วันนี้เราจะพูดถึงวิธีการติดตั้ง Apache Kafka ใน CentOS 8 และแนะนำการใช้งานเบื้องต้น Apache Kafka เป็นแอปพลิเคชันประมวลผลสตรีมเหตุการณ์โอเพนซอร์ส คุณสามารถใช้เป็นระบบส่งข้อความแบบเผยแพร่และรับข้อมูลเพื่อแยกกระบวนการตรรกะทางธุรกิจของคุณจากผู้ผลิตข้อมูล กรณีการใช้งานอื่นๆ ได้แก่ การติดตามกิจกรรมเว็บไซต์ที่มีปริมาณมาก การรวมบันทึกของเซิร์ฟเวอร์ การจัดหาเหตุการณ์ และบันทึกการกระทำ Apache Kafka สามารถปรับขนาดได้สูงเพราะเป็นระบบแบบกระจายที่มีปริมาณงานที่ดีขึ้นและการจำลองแบบในตัว Apache Kafka สามารถปรับขนาดได้โดยไม่ต้องหยุดทำงานในสภาพแวดล้อมการใช้งานจริง ทำให้เหมาะสำหรับการปรับใช้ในสถาปัตยกรรมระบบที่ทนต่อข้อผิดพลาด
Prerequisites
ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
SSH ไปยังเซิร์ฟเวอร์ของคุณและอัปเดตระบบของคุณ
$ sudo yum update -y
Apache Kafka เขียนด้วย Java และ Scala ดังนั้นจึงต้องใช้ Java Runtime Environment
เพื่อทำงาน ติดตั้ง OpenJDK 8
$ sudo yum install -y java-1.8.0-openjdk
ตรวจสอบการติดตั้ง
$ java -version
ตรวจสอบให้แน่ใจว่าคุณได้ผลลัพธ์ด้านล่าง
openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
แก้ไข /etc/profile และกำหนดคอนฟิกตัวแปรสภาวะแวดล้อม Java
$ sudo nano /etc/profile
เพิ่มสองบรรทัดด้านล่างที่ด้านล่างของไฟล์
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk export JRE_HOME=/usr/lib/jvm/jre
source /etc/profile
ติดตั้งยูทิลิตี้ wget
$ sudo yum install -y wget
ไปที่โฮมไดเร็กทอรีของคุณ
$ cd ~
ในเว็บเบราว์เซอร์ ให้ไปที่หน้าดาวน์โหลด Kafka เพื่อค้นหา URL ดาวน์โหลด Apache Kafka เวอร์ชันล่าสุด ดาวน์โหลดแพ็คเกจ Apache Kafka เวอร์ชันเสถียรล่าสุดจากที่เก็บอย่างเป็นทางการ ตัวอย่างเช่น Kafka เวอร์ชัน 2.8.0 สำหรับ Scala 2.12:
$ wget https://downloads.apache.org/kafka/2.8.0/kafka_2.12-2.8.0.tgz
ใช้คำสั่ง tar เพื่อแตกไฟล์บีบอัด
$ tar -xvf kafka_2.12-2.8.0.tgz
ย้ายไฟล์ที่แยกออกมาไปยังไดเร็กทอรี /opt นี่เป็นตำแหน่งที่เหมาะสำหรับการจัดเก็บแอปพลิเคชันเสริม
$ sudo mv kafka_2.12-2.8.0 /opt
ไปยังไดเร็กทอรีใหม่
$ cd /opt/kafka_2.12-2.8.0
เปิด bin/kafka-server-start.sh เพื่อแก้ไขการกำหนดค่า Apache Kafka
$ sudo nano bin/kafka-server-start.sh
ค้นหาบรรทัดด้านล่าง
แก้ไขจาก export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" เปลี่ยนแปลงค่าเป็น export KAFKA_HEAP_OPTS from 1G to 128M
export KAFKA_HEAP_OPTS="-Xmx1G -Xms128M"
แพ็คเกจ Apache Kafka และ Zookeeper พร้อมใช้งานแล้ว คุณจะเรียกใช้ในขั้นตอนต่อไป
ตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีการทำงานของ Apache Kafka
$ cd /opt/kafka_2.12-2.8.0
เริ่มเซิร์ฟเวอร์ Zookeeper
$ bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
เริ่มเซิร์ฟเวอร์ Kafka
$ bin/kafka-server-start.sh config/server.properties
ตอนนี้คุณมีสภาพแวดล้อม Apache Kafka ที่ถูกต้อง และคุณสามารถเริ่มสร้างหัวข้อทดสอบได้แล้ว
ปล่อยให้ Zookeeper และ Apache Kafka ทำงานต่อไป จากนั้น สร้างการเชื่อมต่อ SSH อื่นในหน้าต่างเทอร์มินัลใหม่และ cd ไปยังไดเร็กทอรี Apache Kafka
$ cd /opt/kafka_2.12-2.8.0
ใน Apache Kafka หัวข้อคือช่องทางเฉพาะสำหรับการสตรีมข้อมูล ใช้สคริปต์ kafka-topics.sh เพื่อสร้างหัวข้อทดสอบโดยการรันคำสั่งด้านล่างทีละรายการ
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test1 $ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test2 $ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test3
หลังจากรันคำสั่งแล้ว คุณจะได้ผลลัพธ์ที่แสดงด้านล่าง
Created topic test1. ... Created topic test2. ... Created topic test3.
แสดงรายการหัวข้อที่คุณเพิ่งสร้าง
$ bin/kafka-topics.sh --list --zookeeper localhost:2181
ตอนนี้คุณควรได้รับรายการด้านล่าง
test1 test2 test3
หลังจากสร้างหัวข้อแล้ว คุณจะสร้างข้อความถึงอีกฝั่งในขั้นตอนต่อไป
ในการสร้างข้อความไปยังหัวข้อ เช่น test1 ให้ใช้สคริปต์ kafka-console-producer.sh โดยพิมพ์คำสั่งด้านล่าง
$ cd /opt/kafka_2.12-2.8.0 $ bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test1
หลังจากที่คุณได้รับข้อความแจ้งโหมดป้อนข้อมูลของผู้ใช้ > ให้พิมพ์ข้อความบรรทัดเดียวด้านล่างแล้วกด ENTER หลังแต่ละข้อความ
> Message Line 1 > Message Line 2 > Message Line 3
หากต้องการดึงข้อมูลจากหัวข้อ เช่น test1 ให้สร้างการเชื่อมต่อ SSH อื่นในหน้าต่างเทอร์มินัลใหม่ จากนั้น cd ไปที่ไดเร็กทอรี Apache Kafka
$ cd /opt/kafka_2.12-2.8.0
พิมพ์คำสั่งด้านล่างเพื่อฟังข้อความที่คุณสร้างในหัวข้อ test1
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning
หากคุณได้รับข้อความที่คุณสร้างไว้ก่อนหน้านี้ดังที่แสดงด้านล่าง แสดงว่าการติดตั้ง Apache Kafka ของคุณทำงานได้ตามปกติ
Message Line 1 Message Line 2 Message Line 3