คาฟคาพร้อมกรณีการใช้งานและตัวอย่างแบบเรียลไทม์
Apache Kafka เป็นแพลตฟอร์มการสตรีมแบบกระจายแบบโอเพ่นซอร์สซึ่งออกแบบมาเพื่อจัดการข้อมูลปริมาณมากแบบเรียลไทม์ ทำให้เป็นแพลตฟอร์มที่เหมาะสำหรับการสร้างไปป์ไลน์ข้อมูลแบบเรียลไทม์ แอพพลิเคชั่นสตรีมมิ่ง และสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์
ใช้กรณี:
ไปป์ไลน์ข้อมูลตามเวลาจริง
หนึ่งในกรณีการใช้งานที่พบบ่อยที่สุดสำหรับKafkaคือการสร้างไปป์ไลน์ข้อมูลตามเวลาจริง ตัวอย่างเช่น สามารถใช้ Kafka เพื่อรวบรวมข้อมูลจากเซ็นเซอร์ ไฟล์บันทึก แพลตฟอร์มโซเชียลมีเดีย และแหล่งข้อมูลอื่นๆ และสตรีมไปยังคลังข้อมูล แพลตฟอร์มแมชชีนเลิร์นนิง และปลายทางอื่นๆ
ระบบส่งข้อความ
คาฟคายังสามารถใช้เป็นระบบการส่งข้อความ ทำให้สามารถส่งข้อความระหว่างแอปพลิเคชันและบริการต่างๆ ได้อย่างรวดเร็วและมีประสิทธิภาพ ตัวอย่างเช่น สามารถใช้ Kafka เพื่อขับเคลื่อนแอปพลิเคชันแชท ระบบอีเมล และระบบสื่อสารแบบเรียลไทม์อื่นๆ
การประมวลผลสตรีม
การสนับสนุนของ Kafka สำหรับเฟรมเวิร์กการประมวลผลสตรีม เช่น Apache Flink และApache Spark Streaming ช่วยให้สามารถประมวลผลและวิเคราะห์ข้อมูลแบบเรียลไทม์ได้ ตัวอย่างเช่น สามารถใช้ Kafka เพื่อสร้างระบบตรวจจับการฉ้อโกงแบบเรียลไทม์ เครื่องมือแนะนำแบบเรียลไทม์ และระบบวิเคราะห์ความรู้สึกแบบเรียลไทม์
สถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์
การสนับสนุนสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์ของ Kafka ทำให้เป็นตัวเลือกที่เหมาะสำหรับการสร้างแอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์ที่ซับซ้อน ด้วย Kafka คุณสามารถสร้าง บริโภค และประมวลผลเหตุการณ์ได้แบบเรียลไทม์ ตัวอย่างเช่นสามารถใช้Kafka เพื่อสร้างสถาปัตยกรรมไมโครเซอร์วิสที่ขับเคลื่อนด้วยเหตุการณ์ แพลตฟอร์ม IoT และระบบที่ขับเคลื่อนด้วยเหตุการณ์อื่นๆ
การรวมบันทึก
คาฟคายังสามารถใช้สำหรับการรวมบันทึก ทำให้สามารถรวบรวม จัดเก็บ และวิเคราะห์บันทึกจากหลายแหล่งได้ ตัวอย่างเช่น สามารถใช้ Kafka เพื่อรวบรวมและวิเคราะห์บันทึกจากเว็บเซิร์ฟเวอร์ ฐานข้อมูล และระบบอื่นๆ
ส่วนประกอบสำคัญของคาฟคา
![](https://post.nghiatu.com/assets/images/m/max/724/1*GVPPsr8stws6MtwgDm5d2A.png)
หัวข้อคาฟคา:
- หัวข้อเป็นชื่อตรรกะสำหรับสตรีมข้อมูลที่ข้อความเผยแพร่โดยผู้ผลิตและผู้บริโภคใช้ข้อความจากข้อความใด
- หัวข้อ Kafka แบ่งออกเป็นหนึ่งพาร์ติชันหรือมากกว่า ซึ่งจัดเก็บไว้ทั่วทั้งคลัสเตอร์ Kafka
นายหน้าคืออินสแตนซ์เดียวของเซิร์ฟเวอร์ Kafka ที่จัดเก็บและจัดการพาร์ติชั่น Kafka ตั้งแต่หนึ่งพาร์ติชั่นขึ้นไป คลัสเตอร์คาฟคาประกอบด้วยโบรกเกอร์ตั้งแต่หนึ่งรายขึ้นไปที่ทำงานร่วมกันเพื่อจัดการการจัดเก็บและประมวลผลหัวข้อคาฟคา
ผู้ผลิตและผู้บริโภค:
ผู้ผลิตสร้างข้อมูลไปยังหัวข้อคาฟคา โปรดิวเซอร์สามารถเขียนข้อมูลไปยังหัวข้อต่างๆ แบบคู่ขนานได้ และคาฟคารับรองว่าข้อมูลจะถูกกระจายอย่างเท่าเทียมกันทั่วทั้งพาร์ติชั่น
ผู้บริโภคใช้ข้อมูลจากคาฟคาหนึ่งหัวข้อขึ้นไป ผู้บริโภคสมัครรับหัวข้อและอ่านข้อมูลจากพาร์ติชัน คาฟคารับรองว่ามีผู้บริโภคเพียงรายเดียวจากกลุ่มที่ได้รับข้อมูลจากพาร์ติชันในเวลาใดก็ตาม
พาร์ติชัน:
- หัวข้อของคาฟคาถูกแบ่งออกเป็นพาร์ติชั่นจำนวนหนึ่ง ซึ่งมีข้อความในลำดับที่ไม่สามารถเปลี่ยนแปลงได้(ไม่เปลี่ยนรูป)
- แต่ละข้อความในพาร์ติชันถูกกำหนดและระบุโดยออฟเซ็ตเฉพาะ
- หัวข้อยังสามารถมีบันทึกพาร์ติชันหลายรายการ ซึ่งช่วยให้ผู้บริโภคหลายคนสามารถอ่านจากหัวข้อพร้อมกันได้
ข้อความในพาร์ติชั่นแต่ละอันถูกกำหนดให้ไม่ซ้ำกัน (ต่อพาร์ติชั่น) และรหัสตามลำดับที่เรียกว่าออฟเซ็ต
กลุ่มผู้บริโภค:
กลุ่มผู้บริโภคคือกลุ่มผู้บริโภคตั้งแต่หนึ่งรายขึ้นไปที่ทำงานร่วมกันเพื่อใช้ข้อมูลจากหัวข้อคาฟคา
การจำลองแบบ:
การจำลองแบบเป็นกระบวนการสร้างสำเนาข้อมูลหลายชุด การจำลองแบบช่วยให้มั่นใจได้ว่าหากโบรกเกอร์ (โหนด) ล้มเหลวหรือไม่สามารถใช้งานได้ ข้อมูลที่จัดเก็บในโบรกเกอร์นั้นสามารถกู้คืนได้จากโบรกเกอร์รายอื่นที่มีสำเนาของข้อมูลเดียวกัน
Kafka API
Kafka มี API หลักสี่ตัว:
Producer APIอนุญาตให้แอปพลิเคชันเผยแพร่สตรีมของบันทึกไปยังหัวข้อ Kafka ตั้งแต่หนึ่งหัวข้อขึ้นไป
Consumer APIอนุญาตให้แอปพลิเคชันสมัครรับข้อมูลหนึ่งหัวข้อขึ้นไปและประมวลผลกระแสข้อมูลของบันทึก
Streams APIอนุญาตให้แอปพลิเคชันทำหน้าที่เป็นตัวประมวลผลสตรีม ใช้สตรีมอินพุตจากหนึ่งหัวข้อขึ้นไปและสร้างเอาต์พุตสตรีมไปยังหัวข้อเอาต์พุตตั้งแต่หนึ่งหัวข้อขึ้นไป แปลงสตรีมอินพุตเป็นสตรีมเอาต์พุตได้อย่างมีประสิทธิภาพ
Connector APIช่วยให้สร้างและรันโปรดิวเซอร์หรือผู้บริโภคที่ใช้ซ้ำได้ซึ่งเชื่อมต่อหัวข้อ Kafka กับแอปพลิเคชันหรือระบบข้อมูลที่มีอยู่ ตัวอย่างเช่น ตัวเชื่อมต่อกับฐานข้อมูลเชิงสัมพันธ์อาจบันทึกทุกการเปลี่ยนแปลงในตาราง
ตัวอย่างโลกแห่งความเป็นจริง
- LinkedIn: LinkedIn ใช้ Kafka เพื่อประมวลผลและสตรีมข้อมูลกิจกรรมของผู้ใช้ตามเวลาจริง แพลตฟอร์มดังกล่าวสร้างข้อความมากกว่า 2 ล้านล้านข้อความต่อวันและคาฟคาช่วยจัดการข้อมูลจำนวนมหาศาลนี้โดยอนุญาตให้มีการประมวลผลและวิเคราะห์ตามเวลาจริง
- Uber: Uber ใช้ Kafka เพื่อจัดการสตรีมข้อมูลแบบเรียลไทม์ คาฟคาช่วย Uber จัดการโฟลว์ข้อมูลที่สร้างโดยแอปพลิเคชันคนขับและผู้โดยสารของบริษัท รวมถึงข้อมูลตำแหน่งแบบเรียลไทม์ ข้อมูลการเดินทาง และข้อมูลการชำระเงิน
- Netflix: Netflix ใช้ Kafka เพื่อจัดการไปป์ไลน์ข้อมูลและสตรีมข้อมูลระหว่างไมโครเซอร์วิส Kafka ช่วยให้ Netflix จัดการการไหลของข้อมูลระหว่างบริการต่างๆ เพื่อให้แน่ใจว่าแต่ละบริการสามารถเข้าถึงข้อมูลที่ต้องการเพื่อมอบประสบการณ์การสตรีมที่ราบรื่นให้กับผู้ใช้
- Airbnb: Airbnb ใช้ Kafka เพื่อขับเคลื่อนสถาปัตยกรรมที่ขับเคลื่อนด้วยกิจกรรม Kafka ช่วยให้ Airbnb จัดการลำดับเหตุการณ์ที่เกิดจากผู้ใช้และบริการ ทำให้สามารถให้คำแนะนำที่ปรับให้เหมาะกับแต่ละบุคคลและประสบการณ์ผู้ใช้ที่ราบรื่น
- Twitter: Twitter ใช้ Kafka เพื่อจัดการข้อมูลโซเชียลมีเดียแบบเรียลไทม์ Kafka ช่วยให้ Twitter จัดการข้อมูลจำนวนมหาศาลที่สร้างโดยผู้ใช้ ทำให้สามารถให้ข้อมูลเชิงลึกและการวิเคราะห์ตามเวลาจริงแก่ผู้ลงโฆษณาและพันธมิตร
การเข้าถึงตามบทบาทของ Spring Security ด้วย Spring Boot
Spring Security การรับรองความถูกต้องและการอนุญาตด้วย JWT
บทช่วยสอน Spring AOP
บทช่วยสอนการบันทึก Spring Boot
การกำหนดค่าจากส่วนกลางใน Spring Boot
การตรวจสอบความถูกต้องแบบกำหนดเองใน Spring Boot
javinpaul Domenico Nicoli Trey Huffine Mehmet Arsl Mehmet Ozkaya ทีมการศึกษา