Apache Kafka เป็นแพลตฟอร์มสตรีมมิ่งเหตุการณ์แบบกระจายโอเพนซอร์ซ บทช่วยสอนนี้ช่วยให้คุณแนะนำ Kafka จากมุมมองของผู้เริ่มต้น

Apache Kafka การสอนโอเพ่นซอร์ส

เมื่อเร็ว ๆ นี้เราได้เขียนบทความเกี่ยวกับ“ Kafka vs Redis Pub-Sub” ซึ่งอธิบายเกี่ยวกับความแตกต่างระหว่าง Kafka และ Redis Pub-Sub ในบทความนั้นเราได้อธิบายเกี่ยวกับนายหน้าข้อความ Kafka เองในไม่ช้า ดังนั้นตอนนี้บทความนี้จะช่วยให้คุณเข้าใจมากขึ้นเกี่ยวกับแพลตฟอร์มสตรีมมิ่งเหตุการณ์แบบกระจายโอเพ่นซอร์ส Apache Kafka และให้การแนะนำที่จำเป็นทั้งหมดเพื่อเริ่มต้นการเริ่มต้นด้วยคิวข้อความแจกจ่าย Kafka ดังนั้นมาเริ่มกันเถอะ

รู้เบื้องต้นเกี่ยวกับ Apache Kafka

Apache Kafka Open Source Message Broker เริ่มต้นที่ LinkedIn และต่อมากลายเป็นโครงการ Apache โอเพนซอร์ส ซอฟต์แวร์นายหน้าข้อความ Kafka ได้รับการพัฒนาใน Scala และ Java Apache Kafka Broker เป็นระบบส่งข้อความแบบ publish-subscribe ที่ให้การแลกเปลี่ยนข้อมูลระหว่างแอปพลิเคชันเซิร์ฟเวอร์และโปรเซสเซอร์เช่นกัน มันเร็วปรับขนาดได้และกระจายโดยการออกแบบ มีความสามารถในการจัดการข้อมูลหรือข้อความนับล้านต่อวินาที มันทำงานเป็นสื่อกลางระหว่างระบบต้นฉบับ (ผู้ผลิต) และระบบเป้าหมาย (ผู้บริโภค) องค์กรต่าง ๆ เช่น Netflix, Uber และ บริษัท หลายพันแห่งใช้ประโยชน์จากการสตรีมแบบเรียลไทม์ Apache Kafka เมื่อเปรียบเทียบกับระบบการส่งข้อความอื่น ๆ ซอฟต์แวร์คิวข้อความ Kafka มีปริมาณงานที่ดีกว่าการแบ่งพาร์ติชันในตัวการจำลองแบบและความทนทานต่อความผิดปกติโดยธรรมชาติ สิ่งนี้ทำให้เหมาะสำหรับแอปพลิเคชันการประมวลผลข้อความขนาดใหญ่

ระบบการส่งข้อความคืออะไร?

ระบบการส่งข้อความเป็นการแลกเปลี่ยนข้อความอย่างง่าย ๆ ระหว่างบุคคลสองคนหรือมากกว่านั้นอุปกรณ์ ฯลฯ มันรับผิดชอบการถ่ายโอนข้อมูลจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชันดังนั้นแอปพลิเคชันสามารถมุ่งเน้นไปที่ข้อมูล แต่ไม่ต้องกังวลเกี่ยวกับวิธีการแบ่งปัน ระบบการส่งข้อความประเภทหนึ่งคือ“ ระบบการส่งข้อความชี้ไปยังจุด” ในข้อความระบบนี้จะถูกเก็บไว้ในคิวเมื่อผู้ผลิตส่ง ผู้บริโภคเพียงรายเดียวเท่านั้นที่สามารถบริโภคข้อความได้ในเวลาใดก็ได้ และเมื่อข้อความถูกใช้จะถูกลบออกจากคิว หนึ่งในตัวอย่างของระบบนี้คือระบบการประมวลผลคำสั่งซื้อ โดยที่กระบวนการเดียวเท่านั้นที่สามารถจัดหาคำสั่งซื้อได้ ระบบการส่งข้อความประเภทอื่นคือระบบส่งข้อความแบบผับที่อนุญาตให้ผู้ส่งส่งข้อความและตัวรับสัญญาณอ่านข้อความนั้น ในการส่งข้อความ Apache Kafka ผู้ส่งเป็นที่รู้จักในฐานะผู้ผลิตที่เผยแพร่ข้อความและผู้รับเป็นที่รู้จักกันในนามผู้บริโภคที่ใช้ข้อความนั้นโดยสมัครรับข้อมูล ตัวอย่างของระบบนี้คือเคเบิลทีวีของคุณซึ่งเผยแพร่หลายช่องทางและทุกคนสามารถสมัครรับการเลือกช่องทางและรับได้เมื่อใดก็ตามที่มีช่องทางสมัครสมาชิกของพวกเขา

เงื่อนไขพื้นฐาน

ก่อนที่เราจะพูดคุยเพิ่มเติมเกี่ยวกับคิวข้อความที่ดีที่สุด Apache Kafka คุณต้องเข้าใจคำศัพท์บางคำ

  • หัวข้อ : สตรีมของข้อความที่อยู่ในหมวดหมู่เฉพาะเรียกว่าหัวข้อ
  • พาร์ติชัน : หัวข้ออาจมีพาร์ติชันมากมายดังนั้นพวกเขาจึงสามารถจัดการข้อมูลจำนวนโดยพลการ
  • พาร์ติชั่นออฟเซ็ต : ข้อความพาร์ติชันแต่ละข้อความมีรหัสลำดับที่ไม่ซ้ำกันที่เรียกว่า “ออฟเซ็ต”
  • แบบจำลองของพาร์ติชัน : แบบจำลองเป็นสำรองของพาร์ติชัน พวกเขาใช้เพื่อป้องกันการสูญเสียข้อมูล
  • โบรกเกอร์ : รับผิดชอบในการบำรุงรักษาข้อมูลที่เผยแพร่
  • Kafka Cluster : Kafka มีโบรกเกอร์มากกว่าหนึ่งตัวเรียกว่า Kafka Cluster
  • ผู้ผลิต : เป็นผู้เผยแพร่ข้อความถึงหนึ่งหัวข้อขึ้นไป
  • ผู้บริโภค : เป็นผู้อ่านข้อมูลจากโบรกเกอร์ พวกเขาสมัครสมาชิกหลายหัวข้อและบริโภคเมื่อใดก็ตามที่มีข้อความในหัวข้อ
  • ผู้นำ : เป็นโหนดที่รับผิดชอบการอ่านและเขียนทั้งหมดสำหรับพาร์ติชันใด ๆ ที่กำหนด
  • ผู้ติดตาม : โหนดซึ่งเป็นไปตามคำแนะนำของผู้นำเรียกว่าผู้ติดตาม

ขั้นตอนการติดตั้ง

ขั้นตอนที่ 1 - ตรวจสอบการติดตั้ง Java

หวังว่าคุณจะได้ติดตั้ง Java บนเครื่องของคุณแล้วดังนั้นคุณเพียงแค่ตรวจสอบโดยใช้คำสั่งต่อไปนี้

$ java -version

หากติดตั้ง Java เรียบร้อยแล้วบนเครื่องของคุณคุณสามารถดูเวอร์ชันของ Java ที่ติดตั้งได้ ถ้าไม่เช่นนั้นคุณควรติดตั้ง Java ก่อน

ขั้นตอนที่ 2 - การติดตั้งกรอบ ZooKeeper Framework

เยี่ยมชมลิงค์ต่อไปนี้และดาวน์โหลด ZooKeeper เวอร์ชันล่าสุด {{LINE_46}} เมื่อคุณทำเสร็จแล้วด้วยการติดตั้งและการกำหนดค่าคุณสามารถเริ่ม zookeeper ด้วยคำสั่งต่อไปนี้

$ bin/zkServer.sh start

จากนั้นใช้คำสั่งต่อไปนี้เพื่อเชื่อมต่อกับ Zookeeper จาก CLI

$ bin/zkCli.sh -server 127.0.0.1:2181

เมื่อเชื่อมต่อคุณควรเห็นสิ่งนี้

Connecting to localhost:2181
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
Welcome to ZooKeeper!
JLine support is enabled
[zkshell: 0]

ขั้นตอนที่ 3 - การติดตั้ง Apache Kafka

ดาวน์โหลด Kafka Best Message Broker รุ่นล่าสุดและแยกออกจาก URL ต่อไปนี้ {{LINE_55}}

$ tar -xzf kafka_2.13-2.7.0.tgz
$ cd kafka_2.13-2.7.0

เรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการทั้งหมดในลำดับที่ถูกต้อง:

# Start the ZooKeeper service
# Note: Soon, ZooKeeper will no longer be required by Apache Kafka.
$ bin/zookeeper-server-start.sh config/zookeeper.properties

เปิดเทอร์มินัลเซสชันอื่นแล้วเรียกใช้:

# Start the Kafka broker service
$ bin/kafka-server-start.sh config/server.properties

สร้างหัวข้อ

ในการเขียนข้อความหรือเหตุการณ์ของคุณลงในหัวข้อคุณต้องสร้างหัวข้อก่อน เพื่อสร้างหัวข้อเปิดเทอร์มินัลของคุณและเรียกใช้คำสั่งต่อไปนี้:

$ bin/kafka-topics.sh --create --topic weather-updates --bootstrap-server localhost:9092

ตอนนี้เราได้สร้างหัวข้อที่มีชื่อ“ Weather-Updates” ซึ่งเราจะเผยแพร่ข้อมูลเกี่ยวกับสภาพอากาศและผู้บริโภคจะบริโภคข้อความเหล่านั้น

$ bin/kafka-topics.sh --describe --topic weather-updates --bootstrap-server localhost:9092
Topic:weather-updates  PartitionCount:1    ReplicationFactor:1 Configs:
    Topic: quickstart-events Partition: 0    Leader: 0   Replicas: 0 Isr: 0

เขียนข้อความลงในหัวข้อ

เรียกใช้ไคลเอนต์ผู้ผลิตคอนโซลเพื่อเขียนเหตุการณ์บางอย่างลงในหัวข้อของคุณ โดยค่าเริ่มต้นแต่ละบรรทัดที่คุณป้อนจะส่งผลให้เกิดเหตุการณ์แยกต่างหากที่เขียนไปยังหัวข้อ

$ bin/kafka-console-producer.sh --topic weather-updates --bootstrap-server localhost:9092
Weather for New York is Cloudy
Weather for Houston is Rainy

อ่านข้อความจากหัวข้อ

เปิดเซสชันเทอร์มินัลอื่นและเรียกใช้ไคลเอนต์ผู้บริโภคคอนโซลเพื่ออ่านเหตุการณ์ที่คุณเพิ่งสร้างขึ้น:

$ bin/kafka-console-consumer.sh --topic weather-updates --from-beginning --bootstrap-server localhost:9092
Weather for New York is Cloudy
Weather for Houston is Rainy

อย่าลังเลที่จะทดลอง: ตัวอย่างเช่นสลับกลับไปที่เทอร์มินัลผู้ผลิตของคุณ (ขั้นตอนก่อนหน้า) เพื่อเขียนเหตุการณ์เพิ่มเติมและดูว่าเหตุการณ์ปรากฏขึ้นในเทอร์มินัลผู้บริโภคของคุณได้อย่างไร

บทสรุป

ในบทช่วยสอนนี้เราได้เรียนรู้เกี่ยวกับพื้นฐานของการใช้ Apache Kafka เราติดตั้งบริการคิว Kafka แล้วกำหนดค่า นอกจากนี้เรายังได้เรียนรู้วิธีการสร้างหัวข้อใน Kafka ส่งข้อความไปยังหัวข้อและวิธีการอ่านข้อความจากหัวข้อ ฉันหวังว่าบทความนี้จะมีประโยชน์สำหรับคุณ มาพบกันในบทความถัดไป _ แพลตฟอร์มสตรีมมิ่งเหตุการณ์แบบกระจายโอเพนซอร์สที่คุณใช้?. คุณมีคำถามหรือไม่โปรด _ ติดต่อกลับ

สำรวจ

คุณอาจพบลิงค์ต่อไปนี้ที่เกี่ยวข้อง: