Apache Kafka

אפשר להשתמש במחבר Kafka כדי לבצע שילוב עם Apache Kafka ולפרסם הודעות בנושאים ספציפיים. מחבר Kafka תומך גם בהרשמה לאירועים, שמאפשרת ליצור טריגרים כשמתקבלות הודעות בנושא.

גרסאות נתמכות

המחבר של Apache Kafka משתמש בספריות הלקוח המקוריות כדי ליצור חיבור לאשכול Kafka נתון, והמחבר פועל עם לקוח בגרסה 3.3.1. עם זאת, המחבר יכול ליצור קישוריות לאשכולות Kafka מגרסאות 3.0 עד 3.3.1.

לפני שמתחילים

לפני שמשתמשים במחבר Apache Kafka, צריך לבצע את המשימות הבאות:

  • בפרויקט שלכם ב-Google Cloud:
    • מוודאים שהגדרתם חיבור לרשת. מידע על תבניות רשת זמין במאמר קישוריות לרשת.
    • נותנים למשתמש שמגדיר את המחבר את תפקיד ה-IAM‏ roles/connectors.admin.
    • מקצים לחשבון השירות שרוצים להשתמש בו עבור המחבר את תפקידי ה-IAM הבאים:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      חשבון שירות הוא סוג מיוחד של חשבון Google שמייצג משתמש לא אנושי, שצריך לאמת ולאשר כדי לתת לו גישה לנתונים ב-Google APIs. אם אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות. המחבר וחשבון השירות צריכים להיות שייכים לאותו פרויקט. מידע נוסף זמין במאמר בנושא יצירת חשבון שירות.

    • מפעילים את השירותים הבאים:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      במאמר הפעלת שירותים מוסבר איך להפעיל שירותים.

    אם השירותים או ההרשאות האלה לא הופעלו בפרויקט שלכם בעבר, תתבקשו להפעיל אותם כשאתם מגדירים את המחבר.

הגדרת המחבר

החיבור הוא ספציפי למקור נתונים. אם יש לכם הרבה מקורות נתונים, תצטרכו ליצור חיבור נפרד לכל אחד מהם. כדי ליצור קישור:

  1. במסוף Cloud, עוברים לדף Integration Connectors > Connections ובוחרים או יוצרים פרויקט בענן.

    כניסה לדף Connections

  2. לוחצים על + יצירת חיבור חדש כדי לפתוח את הדף יצירת חיבור.
  3. בשלב מיקום, בוחרים את המיקום של חיבור Apache Kafka החדש:
    1. אזור: בוחרים אזור מהרשימה.
    2. לוחצים על הבא.
  4. בשלב Connection Details (פרטי החיבור), מזינים פרטים על החיבור החדש ל-Apache Kafka:
    1. גרסת המחבר: בוחרים גרסה זמינה של המחבר Apache Kafka מהרשימה.
    2. שם החיבור: מזינים שם לחיבור Apache Kafka.
    3. (אופציונלי) תיאור: מזינים תיאור לקישור.
    4. (אופציונלי) הפעלת Cloud Logging: מסמנים את התיבה הזו כדי לאחסן את כל נתוני היומן של החיבור.
    5. חשבון שירות: בוחרים חשבון שירות עם תפקידי ה-IAM הנדרשים לחיבור Apache Kafka.
    6. האפשרות הפעלת מינוי לאירועים, לישויות ולפעולות מסומנת כברירת מחדל לחיבור Apache Kafka.
    7. Type Detection Scheme: בוחרים באפשרות MessageOnly.
    8. Registry Service: שירות Registry Schema שמשמש לעבודה עם סכימות של נושאים.
    9. סוג הרישום: סוג הסכימה שצוין לנושא מסוים.
    10. Registry Version: גרסת הסכימה שנקראת מ-RegistryUrl עבור הנושא שצוין.
    11. משתמש במאגר: שם המשתמש או ערך מפתח הגישה לאישור בשרת שצוין ב-RegistryUrl.
    12. Registry Password: סוד ב-Secret Manager שמכיל את הסיסמה או את ערך מפתח הסוד לאימות בשרת שצוין ב-RegistryUrl.
    13. אופציונלי: מגדירים את ההגדרות של צומת החיבור:

      • מספר מינימלי של צמתים: מזינים את המספר המינימלי של צמתי חיבור.
      • מספר הצמתים המקסימלי: מזינים את מספר צמתי החיבור המקסימלי.

      צומת הוא יחידה (או עותק) של חיבור שמבצעת עיבוד של עסקאות. כדי לעבד יותר עסקאות לחיבור נדרשים יותר צמתים, ולהפך: כדי לעבד פחות עסקאות נדרשים פחות צמתים. כדי להבין איך הצמתים משפיעים על התמחור של המחבר, אפשר לעיין במאמר בנושא תמחור של צמתי חיבור. אם לא מזינים ערכים, כברירת מחדל, מספר הצמתים המינימלי מוגדר כ-2 (לזמינות טובה יותר) ומספר הצמתים המקסימלי מוגדר כ-50.

    14. אופציונלי: לוחצים על + הוספת תווית כדי להוסיף תווית לקישור בצורה של צמד מפתח/ערך.
    15. הפעלת SSL: בשדה הזה מגדירים אם SSL מופעל.
    16. לוחצים על הבא.
  5. בקטע Destinations (יעדים), מזינים את הפרטים של שרת ה-bootstrap של Kafka שאליו רוצים להתחבר.
    1. סוג היעד: בוחרים סוג יעד.
      • כדי לציין את שם המארח או את כתובת ה-IP של היעד, בוחרים באפשרות כתובת המארח ומזינים את הכתובת בשדה מארח 1.
      • כדי ליצור חיבור פרטי, בוחרים באפשרות Endpoint attachment (צירוף נקודת קצה). ברשימה Endpoint Attachment, בוחרים את קובץ ה-Endpoint Attachment שנוצר עבור מערכת ה-Backend.

      אם רוצים ליצור חיבור ציבורי למערכות העורפיות עם אבטחה נוספת, אפשר להגדיר כתובות IP סטטיות יוצאות לחיבורים, ואז להגדיר את כללי חומת האש כך שרק כתובות ה-IP הסטטיות הספציפיות יופיעו ברשימת ההיתרים.

      כדי לציין עוד שרתי bootstrap של Kafka, לוחצים על + הוספת יעד.

    2. לוחצים על הבא.
  6. בקטע אימות, מזינים את פרטי האימות.
    1. בוחרים סוג אימות ומזינים את הפרטים הרלוונטיים.

      החיבור ל-Apache Kafka תומך בסוגי האימות הבאים:

      • שם משתמש וסיסמה
        • שם משתמש: שם המשתמש של Apache Kafka שבו רוצים להשתמש לחיבור.
        • סיסמה: סוד ב-Secret Manager שמכיל את הסיסמה שמשויכת לשם המשתמש ב-Apache Kafka.
        • סכמת אימות: הסכמה שמשמשת לאימות.

          חיבור Apache Kafka תומך בסכימות האימות הבאות:

          • פשוט
          • SCRAM-SHA-1
          • SCRAM-SHA-256
      • Not Available

        אם רוצים להשתמש בכניסה אנונימית, בוחרים באפשרות לא זמין.

    2. לוחצים על הבא.
  7. מזינים את ההגדרה של תור ההודעות המתות. אם מגדירים תיבת דואר להודעות שלא נמסרו, החיבור כותב את האירועים שלא עברו עיבוד אל נושא Pub/Sub שצוין. ממלאים את הפרטים הבאים:
    1. מזהה פרויקט של הודעות שלא ניתן למסור: מזהה הפרויקט ב-Google Cloud שבו הגדרתם את נושא ה-Pub/Sub של הודעות שלא ניתן למסור.
    2. נושא להודעות ללא מוצא: נושא Pub/Sub שבו רוצים לכתוב את הפרטים של האירוע שלא עבר עיבוד.
  8. לוחצים על הבא.
  9. בדיקה: בודקים את פרטי החיבור והאימות.
  10. לוחצים על יצירה.

מגבלות המערכת

מחבר Apache Kafka יכול לעבד עד 50 עסקאות בשנייה, לכל צומת, ומגביל עסקאות שחורגות מהמגבלה הזו. כברירת מחדל, Integration Connectors מקצה 2 צמתים (לזמינות טובה יותר) לחיבור.

מידע על המגבלות שחלות על Integration Connectors זמין במאמר מגבלות.

פעולות

פעולת PublishMessage

הפעולה הזו מפרסמת הודעה בנושא Apache Kafka. בטבלה הבאה מתוארים פרמטרי הקלט והפלט של פעולת PublishMessage.

פרמטרים של קלט

שם הפרמטר חובה סוג נתונים תיאור
נושא כן String השם של הנושא שרוצים לפרסם בו את ההודעה.
מחיצה לא String המחיצה שההודעה משויכת אליה. הערך חייב להיות תקף לנושא שצוין. אם לא מגדירים את הערך הזה, הוא מוגדר אוטומטית על ידי הלקוח המקומי.
מפתח לא String מפתח ההודעה.
הודעה כן String ההודעה שרוצים לפרסם. ההודעה צריכה להיות JSON במחרוזת, והגודל המקסימלי של ההודעה הוא 10MB.
HasBytes לא בוליאני מציין אם ההודעה היא בפורמט בינארי.
MessageBytes לא String ההודעה בפורמט מחרוזת בקידוד Base64.
אימות לא בוליאני מציינת אם צריך לאמת את ההודעה שמיועדת לפרסום מול סכימת ההודעה שמוגדרת במרכז רישום הסכימות בנושא. אם ציינתם את מאגר הסכימות כשאתם יוצרים חיבור, הגדרת הסכימה של הנושא מהמאגר תשמש לצורך אימות. ערך ברירת המחדל של השדה הזה הוא false.

פרמטרים של פלט

שם הפרמטר סוג נתונים תיאור
PartitionWritten מספר שלם המחיצה שההודעה נכתבה אליה.
OffsetWritten ארוכה המיקום במחיצה שההודעה נכתבה אליה.
TimestampWritten ארוכה הזמן (חותמת זמן של מערכת Unix) שבו ההודעה נשמרה במחיצה.
KeyWritten String הערך של מפתח ההודעה שנכתב. הערך הוא NULL אם לא סופק מפתח הודעה בזמן כתיבת ההודעה.
הפעולה הצליחה בוליאני מציין אם ההודעה פורסמה.

דוגמה לתגובה של פעולת PublishMessage:

{Success: true,
PartitionWritten: 1,
OffsetWritten: 22301,
KeyWritten: "dGVzdA==",
TimestampWritten: 1690806748}

הגדרות ל-Confluent Cloud

ההגדרה של Confluent Cloud שונה מעט מהשלבים שמתועדים קודם ל-Apache Kafka. כשיוצרים חיבור ל-Confluent Cloud, כדאי לשים לב לנקודות הבאות:

  • מפתח ה-API של אשכול Confluent Cloud משמש כשם המשתמש, והסוד של המפתח ב-Secret Manager משמש כסיסמה לחיבור לשרתי ה-bootstrap. אם עדיין אין לכם מפתח API, אתם צריכים ליצור אותו ב-Confluent Cloud.
  • בקטע Connection Details, בוחרים באפשרות Use SSL (שימוש ב-SSL).
  • אם אתם משתמשים במאגר סכימות, צריך להגדיר את הערכים הבאים:
    • בקטע Connection Details:
      • גרסת הרישום: מזינים את מספר גרסת הרישום. אם רוצים להשתמש בגרסה האחרונה, מזינים latest.
      • משתמש במאגר: מזינים את מפתח ה-API של מאגר הסכמות. אם עדיין אין לכם מפתח API של מאגר סכימות, תצטרכו ליצור אותו.
      • Registry Password: מזינים את הסוד של סיסמת המאגר ב-Secret Manager.
      • גרסת סוד: בוחרים את מספר גרסת הסוד.
      • סוג המרשם: בוחרים באפשרות Confluent.
      • Type Detection Scheme: בוחרים באפשרות MessageOnly
    • בקטע Destinations, מזינים את כתובת ה-URL של המרשם בשדה שם המארח.

    יצירת חיבורים באמצעות Terraform

    אפשר להשתמש במשאב של Terraform כדי ליצור חיבור חדש.

    כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

    כדי לראות תבנית לדוגמה של Terraform ליצירת חיבור, אפשר לעיין בתבנית לדוגמה.

    כשיוצרים את החיבור הזה באמצעות Terraform, צריך להגדיר את המשתנים הבאים בקובץ ההגדרות של Terraform:

    שם הפרמטר סוג נתונים חובה תיאור
    type_detection_scheme ENUM נכון הסכימה שמשמשת לאימות עם ברוקר Apache Kafka. הערכים הנתמכים הם: MessageOnly
    registry_service ENUM לא נכון שירות Schema Registry שמשמש לעבודה עם סכימות של נושאים. הערכים הנתמכים הם: Confluent
    registry_type ENUM לא נכון סוג הסכימה שצוין לנושא מסוים. הערכים הנתמכים הם: AVRO, ‏ JSON
    registry_version מחרוזת לא נכון הגרסה של הסכימה שנקראת מ-RegistryUrl עבור הנושא שצוין. הערכים התקינים של גרסת המרשם הם בין [1,2^31-1] או המחרוזת 'latest', שמחזירה את הסכימה האחרונה שנרשמה.
    registry_user מחרוזת לא נכון שם המשתמש לאימות בשרת שצוין ב-RegistryUrl .
    registry_password SECRET לא נכון סוד ב-Secret Manager שמכיל את הסיסמה או את ערך המפתח הסודי לאימות בשרת שצוין ב-RegistryUrl.
    usessl בוליאני לא נכון השדה הזה קובע אם SSL מופעל.

    שימוש בחיבור Apache Kafka בשילוב

    אחרי שיוצרים את החיבור, הוא זמין גם ב-Apigee Integration וגם ב-Application Integration. אפשר להשתמש בחיבור בשילוב באמצעות המשימה Connectors.

    • כדי להבין איך ליצור ולהשתמש במשימה Connectors ב-Apigee Integration, אפשר לעיין במאמר משימת Connectors.
    • מידע על יצירה ושימוש במשימת מחברים ב-Application Integration זמין במאמר משימת מחברים.

    קבלת עזרה מקהילת Google Cloud

    אתם יכולים לפרסם את השאלות שלכם ולדון במחבר הזה בקהילת Google Cloud בפורומים של Cloud.

    המאמרים הבאים