בארכיטקטורת מיקרו-שירותים ומבוססת אירועים של היום, Apache Kafka הוא הסטנדרט עבור יישומי סטרימינג. עם זאת, הקמת Kafka לפיתוח מקומי בשילוב עם יישום Spring Boot שלך יכולה להיות מסובכת, במיוחד כאשר יש להגדיר אותו לפעול באופן מקומי.
יישום Spring Boot מספק תמיכה בשילוב עם Kafka באמצעות spring-kafka חבילת Maven. כדי לעבוד עם spring-kafka, עלינו להתחבר למופע Kafka. בדרך כלל, במהלך הפיתוח, נריץ פשוט מופע Kafka מקומי ונבנה נגדו. אבל עם Docker Desktop וקונטיינרים, הדברים הרבה יותר קלים להקמה מאשר להריץ מופע Kafka מקומי. מאמר זה מדריך אותנו דרך הצעדים להקמת קונטיינר Kafka מקומי עם יישום Spring Boot.
דרישות מקדימות
- עלינו להקים את Docker Desktop. כדי לעשות זאת, נוכל להתייחס למאמר זה מאמר.
- יישום Spring Boot עם חבילת spring-kafka מוגדרת.
הרצת קונטיינר Kafka
כדי להריץ את קונטיינר Kafka, נשתמש קודם כל בקובץ docker-compose הבא:
version'3'
services
zookeeper
image confluentinc/cp-zookeeper latest
environment
ZOOKEEPER_CLIENT_PORT2181
ports
"2181:2181"
kafka
image confluentinc/cp-kafka latest
environment
KAFKA_ZOOKEEPER_CONNECT zookeeper2181
KAFKA_ADVERTISED_LISTENERS PLAINTEXT //localhost9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR1
ports
"9092:9092"
depends_on
zookeeper
קובץ הדוקרים-קומפוז מכיל את ההגדרות למשיכת קונטיינר קפקא ואת התלות שלו, קונטיינר הזוקיפר. הזוקיפר מנהל את צמתים של הברוקר קפקא בקלאסטר; ניתן למצוא פרטים נוספים על כך במאמר הזה article.
כדי לרשום את הקונטיינרים עם Docker Desktop, נשתמש בפקודה הבאה:
docker-compose up -d
זה ישאב את הדימויים הנדרשים ויפעיל את הקונטיינרים, וכששני הקונטיינרים פועלים, תוכל לראות את הקונטיינרים ב-Docker Desktop כמו למטה:
עכשיו כשהקונטיינר של קפקא פועל, נוכל ליצור את הנושאים הנדרשים באמצעות הקונסולה של Docker Desktop בעזרת הפקודה הבאה:
kafka-topics --create --topic user-notification --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
עכשיו שהקונטיינר פועל והדרישות הנדרשות בוצעו, נוכל להפעיל את יישום ה-Spring Boot. עבור יישום ה-Spring Boot, הגדר את כתובת ה-bootstrap של קפקא כך:
kafka.bootstrapAddress=localhost:9092
כשנפעיל את יישום ה-Spring Boot, עלינו לראות את הלוגים של החיבור עם Kafka, בהתאם לסוג יישום ה-Spring Boot, אם הוא יצרן או צרכן.
בעקבות הצעדים המפורטים במאמר, הקמנו סביבה לפיתוח מקומית באמצעות קונטיינר קפקא ויישום Spring Boot.
Source:
https://dzone.com/articles/setting-up-local-kafka-container-for-spring-boot-application