ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีปรับใช้คลัสเตอร์ Apache Kafka โดยใช้นักเทียบท่า สิ่งนี้ทำให้เราสามารถใช้อิมเมจนักเทียบท่าที่ให้มาเพื่อหมุนคลัสเตอร์ Kafka ได้อย่างรวดเร็วในเกือบทุกสภาพแวดล้อม
เรามาเริ่มกันที่พื้นฐานและอภิปรายว่าคาฟคาคืออะไร
Apache Kafka คืออะไร?
Apache Kafka เป็นระบบการส่งข้อความแบบเผยแพร่และสมัครเป็นสมาชิกฟรีแบบโอเพ่นซอร์ส ปรับขนาดได้สูง กระจาย และทนต่อข้อผิดพลาด ได้รับการออกแบบมาเพื่อจัดการกับสตรีมข้อมูลปริมาณมาก ปริมาณงานสูง และแบบเรียลไทม์ ทำให้เหมาะสำหรับกรณีการใช้งานจำนวนมาก รวมถึงการรวมบันทึก การวิเคราะห์ตามเวลาจริง และสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์
คาฟคาใช้สถาปัตยกรรมแบบกระจายซึ่งช่วยให้สามารถจัดการข้อมูลจำนวนมากในเซิร์ฟเวอร์หลายเครื่องได้ ใช้รูปแบบการเผยแพร่และสมัครสมาชิกซึ่งผู้ผลิตส่งข้อความไปยังหัวข้อและผู้บริโภคสมัครรับข่าวสารเพื่อรับ สิ่งนี้ทำให้สามารถสื่อสารแยกกันระหว่างผู้ผลิตและผู้บริโภค ทำให้มีความสามารถในการปรับขนาดและความยืดหยุ่นสูง
Docker Compose คืออะไร
การเขียน Docker หมายถึงปลั๊กอินหรือเครื่องมือนักเทียบท่าสำหรับกำหนดและเรียกใช้แอปพลิเคชันหลายคอนเทนเนอร์ นักเทียบท่ากำหนดให้เรากำหนดค่าคอนเทนเนอร์ในไฟล์ YAML ไฟล์คอนฟิกูเรชันประกอบด้วยข้อกำหนดเฉพาะของคอนเทนเนอร์ เช่น บริการ เครือข่าย และวอลุ่มที่แอปพลิเคชันต้องการ
การใช้คำสั่ง docker-compose เราสามารถสร้างและเริ่มคอนเทนเนอร์หลายรายการด้วยคำสั่งเดียว
การติดตั้ง Docker และ Docker Compose
ขั้นตอนแรกคือต้องแน่ใจว่าคุณติดตั้งนักเทียบท่าบนเครื่องของคุณ คุณสามารถตรวจสอบแหล่งข้อมูลต่อไปนี้เพื่อเรียนรู้เพิ่มเติม:
- https://linuxhint.com/install_configure_docker_ubuntu/
- https://linuxhint.com/install-docker-debian/
- https://linuxhint.com/install_docker_debian_10/
- https://linuxhint.com/install-docker-ubuntu-22-04/
- https://linuxhint.com/install-docker-on-pop_os/
- https://linuxhint.com/how-to-install-docker-desktop-windows/
- https://linuxhint.com/install-use-docker-centos-8/
- https://linuxhint.com/install_docker_on_raspbian_os/
ในขณะที่เขียนบทช่วยสอนนี้ การติดตั้งการเขียน docker จำเป็นต้องติดตั้งเดสก์ท็อป Docker บนเครื่องเป้าหมายของคุณ ดังนั้น การติดตั้ง docker ที่เขียนเป็นหน่วยแบบสแตนด์อโลนจึงเลิกใช้แล้ว
เมื่อเราติดตั้ง Docker แล้ว เราสามารถกำหนดค่าไฟล์ YAML ได้ ไฟล์นี้มีรายละเอียดทั้งหมดที่เราต้องใช้ในการสร้างคลัสเตอร์ Kafka โดยใช้คอนเทนเนอร์นักเทียบท่า
การตั้งค่า Docker-Compose.YAML
สร้าง docker-compose.yaml และแก้ไขด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ:
$ แตะ docker-compose.yaml$ vim นักเทียบท่า-compose.yaml
ถัดไป เพิ่มไฟล์คอนฟิกูเรชันนักเทียบท่าดังที่แสดงต่อไปนี้:
รุ่น : '3'บริการ :
ผู้ดูแลสวนสัตว์ :
ภาพ : บิตนามิ / ผู้ดูแลสวนสัตว์ : 3.8
พอร์ต :
- '2181:2181'
ปริมาณ :
- 'zookeeper_data:/บิตนามิ'
สิ่งแวดล้อม :
- ALLOW_ANONYMOUS_LOGIN = ใช่
คาฟคา :
ภาพ : นักเทียบท่า นี้ / บิตนามิ / คาฟคา : 3.3
พอร์ต :
- '9092:9092'
ปริมาณ :
- 'kafka_data:/บิตนามิ'
สิ่งแวดล้อม :
- KAFKA_CFG_ZOOKEEPER_CONNECT = ผู้ดูแลสวนสัตว์ : 2181
- ALLOW_PLAINTEXT_LISTENER = ใช่
ขึ้นอยู่กับ :
- ผู้ดูแลสวนสัตว์
ปริมาณ :
ผู้ดูแลสวนสัตว์_data :
คนขับรถ : ท้องถิ่น
คาฟคา_ดาต้า :
คนขับรถ : ท้องถิ่น
ไฟล์นักเทียบท่าตัวอย่างตั้งค่า Zookeeper และคลัสเตอร์ Kafka ซึ่งคลัสเตอร์ Kafka เชื่อมต่อกับบริการ Zookeeper เพื่อการประสานงาน ไฟล์นี้ยังกำหนดค่าพอร์ตและตัวแปรสภาพแวดล้อมสำหรับแต่ละบริการเพื่อให้สามารถสื่อสารและเข้าถึงบริการได้
เรายังตั้งค่าไดรฟ์ข้อมูลที่มีชื่อเพื่อคงข้อมูลของบริการ แม้ว่าคอนเทนเนอร์จะถูกรีสตาร์ทหรือสร้างใหม่
ให้เราแบ่งไฟล์ก่อนหน้าออกเป็นส่วนง่ายๆ:
เราเริ่มต้นด้วยบริการ Zookeeper โดยใช้อิมเมจ bitnami/zookeeper:3.8 รูปภาพนี้แมปพอร์ต 2181 บนเครื่องโฮสต์กับพอร์ต 2181 บนคอนเทนเนอร์ เรายังตั้งค่าตัวแปรสภาพแวดล้อม ALLOW_ANONYMOUS_LOGIN เป็น 'ใช่' สุดท้าย เราตั้งค่าปริมาณที่บริการเก็บข้อมูลเป็นปริมาณ Zookeeper_data
บล็อกที่สองกำหนดรายละเอียดเพื่อตั้งค่าบริการคาฟคา ในกรณีนี้ เราใช้อิมเมจ docker.io/bitnami/kafka:3.3 ซึ่งแมปพอร์ตโฮสต์ 9092 กับพอร์ตคอนเทนเนอร์ 9092 ในทำนองเดียวกัน เรายังกำหนดตัวแปรสภาพแวดล้อม KAFKA_CFG_ZOOKEEPER_CONNECT และตั้งค่าเป็นแอดเดรสของ Zookeeper ตามที่แมปกับ พอร์ต 2181 ตัวแปรสภาพแวดล้อมตัวที่สองที่เรากำหนดในส่วนนี้คือตัวแปรสภาพแวดล้อม ALLOW_PLAINTEXT_LISTENER การตั้งค่าของตัวแปรสภาพแวดล้อมนี้เป็น 'ใช่' อนุญาตให้รับส่งข้อมูลที่ไม่ปลอดภัยไปยังคลัสเตอร์ Kafka
สุดท้าย เราจัดเตรียมปริมาณที่บริการ Kafka เก็บข้อมูลไว้
เพื่อให้แน่ใจว่านักเทียบท่ากำหนดค่าไดรฟ์ข้อมูลสำหรับ Zookeeper และ Kafka เราจำเป็นต้องกำหนดดังที่แสดงในส่วนไดรฟ์ข้อมูล สิ่งนี้ตั้งค่าไดรฟ์ข้อมูล Zookeeper_data และ kafka_data ไดรฟ์ข้อมูลทั้งสองใช้ไดรเวอร์ในเครื่องซึ่งหมายความว่าข้อมูลถูกเก็บไว้ในเครื่องโฮสต์
คุณมีมัน! ไฟล์คอนฟิกูเรชันอย่างง่ายที่ให้คุณหมุนคอนเทนเนอร์คาฟคาโดยใช้นักเทียบท่าในขั้นตอนง่ายๆ
เรียกใช้คอนเทนเนอร์
เพื่อให้แน่ใจว่านักเทียบท่าทำงานอยู่ เราสามารถเรียกใช้คอนเทนเนอร์จากไฟล์ YAML ด้วยคำสั่งต่อไปนี้:
$ ซูโด นักเทียบท่าเขียนขึ้นคำสั่งควรค้นหาไฟล์การกำหนดค่า YAML และเรียกใช้คอนเทนเนอร์ด้วยค่าที่ระบุ:
บทสรุป
ตอนนี้คุณได้เรียนรู้วิธีกำหนดค่าและเรียกใช้ Apache Kafka จากไฟล์กำหนดค่า YAML ของนักเทียบท่า