Apache Kafka - บทนำ
ใน Big Data มีการใช้ข้อมูลจำนวนมหาศาล เกี่ยวกับข้อมูลเรามีความท้าทายหลักสองประการความท้าทายแรกคือวิธีรวบรวมข้อมูลจำนวนมากและความท้าทายประการที่สองคือการวิเคราะห์ข้อมูลที่รวบรวม เพื่อเอาชนะความท้าทายเหล่านั้นคุณต้องมีระบบส่งข้อความ
Kafka ออกแบบมาสำหรับระบบปริมาณงานสูงแบบกระจาย Kafka มีแนวโน้มที่จะทำงานได้ดีมากในการแทนที่นายหน้าข้อความแบบเดิม ๆ เมื่อเปรียบเทียบกับระบบการส่งข้อความอื่น Kafka มีทรูพุตที่ดีกว่าการแบ่งพาร์ติชันในตัวการจำลองแบบและการยอมรับข้อผิดพลาดโดยธรรมชาติซึ่งทำให้เหมาะสำหรับแอปพลิเคชันการประมวลผลข้อความขนาดใหญ่
ระบบส่งข้อความคืออะไร?
ระบบส่งข้อความมีหน้าที่ในการถ่ายโอนข้อมูลจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชันดังนั้นแอปพลิเคชันจึงสามารถมุ่งเน้นไปที่ข้อมูลได้ แต่ไม่ต้องกังวลเกี่ยวกับวิธีการแบ่งปัน การส่งข้อความแบบกระจายจะขึ้นอยู่กับแนวคิดของการจัดคิวข้อความที่เชื่อถือได้ ข้อความถูกจัดคิวแบบอะซิงโครนัสระหว่างแอปพลิเคชันไคลเอนต์และระบบการส่งข้อความ รูปแบบการส่งข้อความมีให้เลือกสองแบบคือแบบชี้ต่อจุดและอีกแบบคือระบบการส่งข้อความเผยแพร่สมัครสมาชิก (pub-sub) รูปแบบการส่งข้อความส่วนใหญ่เป็นไปตามpub-sub.
ชี้ไปที่ Point Messaging System
ในระบบแบบจุดต่อจุดข้อความจะยังคงอยู่ในคิว ผู้บริโภคอย่างน้อยหนึ่งรายสามารถใช้ข้อความในคิวได้ แต่ข้อความหนึ่ง ๆ สามารถใช้งานได้โดยผู้บริโภคสูงสุดเพียงรายเดียวเท่านั้น เมื่อผู้บริโภคอ่านข้อความในคิวข้อความนั้นจะหายไปจากคิวนั้น ตัวอย่างทั่วไปของระบบนี้คือระบบประมวลผลคำสั่งซึ่งแต่ละคำสั่งจะได้รับการประมวลผลโดยตัวประมวลผลคำสั่งเดียว แต่โปรเซสเซอร์หลายคำสั่งสามารถทำงานได้เช่นกันในเวลาเดียวกัน แผนภาพต่อไปนี้แสดงถึงโครงสร้าง
เผยแพร่ - สมัครรับข้อความระบบ
ในระบบเผยแพร่ - สมัครสมาชิกข้อความจะยังคงอยู่ในหัวข้อ แตกต่างจากระบบจุดต่อจุดผู้บริโภคสามารถสมัครสมาชิกหัวข้อหนึ่งหรือหลายหัวข้อและใช้ข้อความทั้งหมดในหัวข้อนั้น ในระบบการสมัครสมาชิกเผยแพร่ผู้ผลิตข้อความเรียกว่าผู้เผยแพร่และผู้บริโภคข้อความเรียกว่าสมาชิก ตัวอย่างในชีวิตจริงคือ Dish TV ซึ่งเผยแพร่ช่องต่างๆเช่นกีฬาภาพยนตร์เพลง ฯลฯ และทุกคนสามารถสมัครรับข้อมูลจากชุดช่องของตนเองและรับเมื่อใดก็ตามที่มีช่องที่สมัครรับข้อมูล
คาฟคาคืออะไร?
Apache Kafka เป็นระบบการส่งข้อความแบบเผยแพร่ - สมัครสมาชิกแบบกระจายและคิวที่แข็งแกร่งซึ่งสามารถจัดการข้อมูลจำนวนมากและช่วยให้คุณสามารถส่งผ่านข้อความจากปลายทางหนึ่งไปยังอีกจุดหนึ่งได้ Kafka เหมาะสำหรับการใช้ข้อความทั้งออฟไลน์และออนไลน์ ข้อความ Kafka จะยังคงอยู่บนดิสก์และจำลองแบบภายในคลัสเตอร์เพื่อป้องกันข้อมูลสูญหาย Kafka สร้างขึ้นจากบริการซิงโครไนซ์ ZooKeeper ทำงานร่วมกับ Apache Storm และ Spark ได้เป็นอย่างดีสำหรับการวิเคราะห์ข้อมูลสตรีมมิ่งแบบเรียลไทม์
สิทธิประโยชน์
ต่อไปนี้เป็นประโยชน์บางประการของ Kafka -
Reliability - Kafka มีการแจกจ่ายแบ่งพาร์ติชันจำลองแบบและความทนทานต่อความผิดพลาด
Scalability - ระบบส่งข้อความ Kafka ปรับขนาดได้อย่างง่ายดายโดยไม่ต้องเสียเวลา ..
Durability- Kafka ใช้
บันทึกการกระทำแบบกระจาย
ซึ่งหมายความว่าข้อความยังคงอยู่บนดิสก์โดยเร็วที่สุดจึงมีความทนทาน ..Performance- Kafka มีปริมาณงานสูงสำหรับทั้งการเผยแพร่และการสมัครรับข้อความ รักษาประสิทธิภาพการทำงานที่เสถียรแม้จะเก็บข้อความไว้หลาย TB
Kafka รวดเร็วมากและรับประกันการหยุดทำงานเป็นศูนย์และข้อมูลสูญหายเป็นศูนย์
ใช้กรณี
Kafka สามารถใช้กับ Use Case ได้หลายแบบ บางส่วนมีการระบุไว้ด้านล่าง -
Metrics- คาฟคามักใช้สำหรับข้อมูลการตรวจสอบการปฏิบัติงาน สิ่งนี้เกี่ยวข้องกับการรวบรวมสถิติจากแอปพลิเคชันแบบกระจายเพื่อสร้างฟีดข้อมูลการดำเนินงานจากส่วนกลาง
Log Aggregation Solution - Kafka สามารถใช้งานได้ทั่วทั้งองค์กรเพื่อรวบรวมบันทึกจากบริการที่หลากหลายและทำให้สามารถใช้งานได้ในรูปแบบมาตรฐานสำหรับผู้ใช้หลายคน
Stream Processing- เฟรมเวิร์กยอดนิยมเช่น Storm และ Spark Streaming อ่านข้อมูลจากหัวข้อประมวลผลและเขียนข้อมูลที่ประมวลผลไปยังหัวข้อใหม่ซึ่งพร้อมใช้งานสำหรับผู้ใช้และแอปพลิเคชัน ความทนทานที่แข็งแกร่งของ Kafka ยังมีประโยชน์อย่างมากในบริบทของการประมวลผลสตรีม
ต้องการคาฟคา
Kafka เป็นแพลตฟอร์มแบบครบวงจรสำหรับจัดการฟีดข้อมูลแบบเรียลไทม์ทั้งหมด Kafka รองรับการส่งข้อความเวลาแฝงต่ำและรับประกันความทนทานต่อความผิดพลาดในกรณีที่เครื่องขัดข้อง มีความสามารถในการรองรับผู้บริโภคที่หลากหลายจำนวนมาก Kafka เร็วมากเขียน 2 ล้านครั้ง / วินาที Kafka ยังคงเก็บข้อมูลทั้งหมดไว้ในดิสก์ซึ่งโดยพื้นฐานแล้วหมายความว่าการเขียนทั้งหมดจะไปที่แคชของหน้าของ OS (RAM) ทำให้การถ่ายโอนข้อมูลจากแคชของเพจไปยังซ็อกเก็ตเครือข่ายมีประสิทธิภาพมาก