שכפול נושאים ב-Kafka באמצעות MirrorMaker 2.0

במדריך הזה נסביר איך לשכפל נתונים בין אשכולות של שירות מנוהל ל-Apache Kafka באמצעות מחבר המקור של MirrorMaker 2.0.

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

ארכיטקטורה

בתרחיש הזה יש שלוש קבוצות:

  • קלאסטר Kafka שהנתונים שלו משוכפלים. האוסף הזה נקרא אוסף המקור, כי הוא המקור של הנתונים.

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

  • Connect cluster, שמאפשר ליצור ולנהל את מחבר המקור של MirrorMaker 2.0.

אשכול Connect מצורף לאשכול היעד. כדי לצמצם את זמן האחזור של פעולות כתיבה, צריך למקם את אשכול Connect באותו אזור שבו נמצא אשכול היעד.

בתרשים הבא מוצגים הרכיבים האלה:

ארכיטקטורה של תרחיש שכפול נתונים ב-Kafka

שכפול הנתונים מתבצע על ידי מחבר המקור MirrorMaker 2.0. יש עוד שני מחברים של MirrorMaker 2.0 שאפשר להשתמש בהם בתרחיש הזה:

  • מחבר של נקודת בקרה (checkpoint) ב-MirrorMaker 2.0: מאפשר מעבר גיבוי אוטומטי (failover) חלק, כי הוא מוודא שהצרכנים באשכול היעד יכולים להמשיך את העיבוד מאותה נקודה כמו באשכול המקור.

  • מחבר Heartbeat של MirrorMaker 2.0: יוצר הודעות תקופתיות של Heartbeat באשכול Kafka של המקור, שמאפשרות לכם לעקוב אחרי תקינות השכפול של הנתונים.

במדריך הזה לא נעשה שימוש במחברים האופציונליים האלה. מידע נוסף זמין במאמר מתי כדאי להשתמש ב-MirrorMaker 2.0.

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

המסוף

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Managed Kafka API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Managed Kafka API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. צריך לוודא שיש לכם בפרויקט את התפקיד או התפקידים הבאים: Managed Kafka Cluster Editor, Managed Kafka Connect Cluster Editor, Managed Kafka Connector Editor

    בדיקת התפקידים

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט.
    3. בעמודה Principal, מחפשים את כל השורות שמזהות אתכם או קבוצה שאתם נכללים בה. כדי לדעת באילו קבוצות אתם נכללים, פנו לאדמין.

    4. בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.

    מתן התפקידים

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט.
    3. לוחצים על Grant access.
    4. בשדה New principals, מזינים את מזהה המשתמש. ‫ בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.

      ‫
    5. לוחצים על Select a role ומחפשים את התפקיד.
    6. כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
    7. לוחצים על Save.

gcloud

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את Managed Kafka API, אם הוא עדיין לא מופעל:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable managedkafka.googleapis.com
  8. התקינו את ה-CLI של Google Cloud.

  9. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את Managed Kafka API, אם הוא עדיין לא מופעל:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable managedkafka.googleapis.com
  14. מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/managedkafka.clusterEditor, roles/managedkafka.connectClusterEditor, roles/managedkafka.connectorEditor

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט.
    • ‫USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
    • ‫ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.

יצירת אשכול Kafka של המקור

בשלב הזה יוצרים אשכול של שירות מנוהל ל-Apache Kafka. האשכול הזה הוא אשכול המקור, שמכיל את הנתונים לשכפול.

המסוף

  1. עוברים לדף שירות מנוהל ל-Apache Kafka > Clusters (אשכולות).

    מעבר אל Clusters

  2. לוחצים על יצירה.

  3. בתיבה שם האשכול, מזינים שם לאשכול.

  4. ברשימה Region, בוחרים מיקום לאשכול.

  5. בקטע Network configuration (תצורת רשת), מגדירים את רשת המשנה שבה אפשר לגשת לאשכול.

    1. בקטע Project (פרויקט), בוחרים את הפרויקט.
    2. בקטע רשת, בוחרים רשת VPC בפרויקט.
    3. בשדה רשת משנה, בוחרים רשת משנה.
    4. לוחצים על סיום.
  6. לוחצים על יצירה.

במהלך יצירת האשכול, מצב האשכול הוא Creating. כשהאשכול סיים את היצירה, הסטטוס שלו הוא Active.

gcloud

כדי ליצור את אשכול Kafka של המקור, מריצים את הפקודה managed-kafka clusters create.

gcloud managed-kafka clusters create SOURCE_KAFKA_CLUSTER \
--location=SOURCE_REGION \
--cpu=3 \
--memory=3GiB \
--subnets=projects/PROJECT_ID/regions/SOURCE_REGION/subnetworks/SOURCE_SUBNET \
--async

מחליפים את מה שכתוב בשדות הבאים:

  • ‫SOURCE_KAFKA_CLUSTER: שם לאשכול Kafka
  • ‫SOURCE_REGION: המיקום של האשכול

    מידע על מיקומים נתמכים זמין במאמר בנושא מיקומים של שירות מנוהל ל-Apache Kafka.

  • ‫PROJECT_ID: מזהה הפרויקט

  • ‫SOURCE_SUBNET: תת-הרשת שבה רוצים לפרוס את האשכול, לדוגמה: default

הפקודה פועלת באופן אסינכרוני ומחזירה מזהה פעולה:

Check operation [projects/PROJECT_ID/locations/SOURCE_SUBNET/operations/OPERATION_ID] for status.

כדי לעקוב אחרי ההתקדמות של פעולת היצירה, משתמשים בפקודה gcloud managed-kafka operations describe:

gcloud managed-kafka operations describe OPERATION_ID \
  --location=SOURCE_REGION

מידע נוסף מופיע במאמר בנושא מעקב אחרי פעולת יצירת האשכול.

יצירת נושא Kafka

כשהאשכול של המקור מוכן, יוצרים נושא באופן הבא:

המסוף

  1. עוברים לדף שירות מנוהל ל-Apache Kafka > Clusters (אשכולות).

    מעבר אל Clusters

  2. לוחצים על שם האשכול.

  3. בדף הפרטים של האשכול, לוחצים על יצירת נושא.

  4. בתיבה שם הנושא, מזינים שם לנושא.

  5. לוחצים על יצירה.

gcloud

כדי ליצור נושא ב-Kafka, מריצים את הפקודה managed-kafka topics create.

gcloud managed-kafka topics create TOPIC_NAME \
--cluster=SOURCE_KAFKA_CLUSTER \
--location=SOURCE_REGION \
--partitions=10 \
--replication-factor=3

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TOPIC_NAME: השם של נושא Kafka שרוצים ליצור
  • ‫SOURCE_KAFKA_CLUSTER: השם של אשכול המקור
  • ‫SOURCE_REGION: האזור שבו יצרתם את אשכול המקור

יצירת אשכול Kafka ליעד

בשלב הזה יוצרים אשכול שני של שירות מנוהל ל-Apache Kafka. האשכול הזה הוא אשכול היעד, שאליו MirrorMaker 2.0 משכפל נתונים.

המסוף

  1. עוברים לדף שירות מנוהל ל-Apache Kafka > Clusters (אשכולות).

    מעבר אל Clusters

  2. לוחצים על יצירה.

  3. בתיבה שם האשכול, מזינים שם לאשכול.

  4. ברשימה Region, בוחרים מיקום לאשכול. בוחרים אזור אחר שבו נמצא אשכול המקור.

  5. בקטע Network configuration (תצורת רשת), מגדירים את רשת המשנה שבה אפשר לגשת לאשכול היעד. רשת המשנה צריכה להיות באותה רשת VPC כמו רשת המשנה של אשכול המקור.

    1. בקטע Project (פרויקט), בוחרים את הפרויקט.
    2. בקטע Network (רשת), בוחרים את אותה רשת VPC כמו תת-הרשת של אשכול המקור.
    3. בשדה רשת משנה, בוחרים את רשת המשנה.
    4. לוחצים על סיום.
  6. לוחצים על יצירה.

במהלך יצירת האשכול, מצב האשכול הוא Creating. כשהאשכול סיים את היצירה, הסטטוס שלו הוא Active.

gcloud

כדי ליצור את אשכול היעד של Kafka, מריצים את הפקודה managed-kafka clusters create.

gcloud managed-kafka clusters create TARGET_KAFKA_CLUSTER \
--location=TARGET_REGION \
--cpu=3 \
--memory=3GiB \
--subnets=projects/PROJECT_ID/regions/TARGET_REGION/subnetworks/TARGET_SUBNET \
--async

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TARGET_KAFKA_CLUSTER: שם לאשכול Kafka
  • ‫TARGET_REGION: המיקום של האשכול. צריך לבחור אזור שונה מהאזור שבו נמצא אשכול המקור.

    מידע על מיקומים נתמכים זמין במאמר בנושא מיקומים של שירות מנוהל ל-Apache Kafka.

  • ‫PROJECT_ID: מזהה הפרויקט

  • ‫TARGET_SUBNET: תת-הרשת שבה רוצים לפרוס את האשכול, לדוגמה: default

    בוחרים רשת משנה באותו VPC כמו אשכול המקור.

יצירת אשכול Connect

בשלב הזה יוצרים אשכול Connect. יצירת אשכול Connect נמשכת בדרך כלל 20-30 דקות.

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

המסוף

  1. עוברים לדף שירות מנוהל ל-Apache Kafka > Connect Clusters (חיבור אשכולות).

    מעבר אל Connect Clusters

  2. לוחצים על יצירה.

  3. בשדה Connect cluster name (שם אשכול החיבור), מזינים מחרוזת. דוגמה: my-connect-cluster.

  4. בשדה Primary Kafka cluster (אשכול Kafka ראשי), בוחרים את אשכול Kafka target (יעד) שיצרתם בשלב הקודם. (אל תבחרו את אשכול Kafka של המקור).

  5. בקטעים Location (מיקום), Network configuration (הגדרת רשת) ו-Worker subnet (רשת משנה של עובד), אפשר להשתמש בערכי ברירת המחדל או להתאים אותם לדרישות הספציפיות שלכם.

  6. כדי לאפשר לאשכול Connect לפתור את דומיין ה-DNS של אשכול המקור, מבצעים את השלבים הבאים:

    1. מרחיבים את האפשרות Resolvable DNS domains (דומיינים של DNS שאפשר לפתור).

    2. לוחצים על הוספת דומיין DNS.

    3. ברשימה Kafka cluster, בוחרים את מקור אשכול Kafka.

  7. לוחצים על יצירה.

במהלך יצירת האשכול, מצב האשכול הוא Creating. כשהאשכול סיים את היצירה, הסטטוס שלו הוא Active.

gcloud

כדי ליצור אשכול Connect, מריצים את הפקודה gcloud managed-kafka connect-clusters create.

gcloud managed-kafka connect-clusters create CONNECT_CLUSTER \
  --location=TARGET_REGION \
  --cpu=12 \
  --memory=12GiB \
  --primary-subnet=projects/PROJECT_ID/regions/TARGET_REGION/subnetworks/TARGET_SUBNET \
  --kafka-cluster=TARGET_KAFKA_CLUSTER \
  --dns-name=SOURCE_KAFKA_CLUSTER.SOURCE_REGION.managedkafka.PROJECT_ID.cloud.goog. \
  --async

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CONNECT_CLUSTER: שם לאשכול Connect
  • ‫TARGET_REGION: האזור שבו יצרתם את אשכול היעד של Kafka
  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫TARGET_SUBNET: רשת המשנה שבה יצרתם את אשכול Kafka של היעד
  • ‫TARGET_KAFKA_CLUSTER: השם של אשכול היעד של Kafka
  • ‫SOURCE_KAFKA_CLUSTER: השם של אשכול Kafka של המקור
  • ‫SOURCE_REGION: האזור שבו יצרתם את אשכול Kafka של המקור

הפקודה פועלת באופן אסינכרוני ומחזירה מזהה פעולה:

Check operation [projects/PROJECT_ID/locations/TARGET_REGION/operations/OPERATION_ID] for status.

כדי לעקוב אחרי ההתקדמות של פעולת היצירה, משתמשים בפקודה gcloud managed-kafka operations describe:

gcloud managed-kafka operations describe OPERATION_ID \
  --location=TARGET_REGION

מידע נוסף מופיע במאמר בנושא מעקב אחרי פעולת יצירת האשכול.

יצירת מחבר מקור של MirrorMaker 2.0

בשלב הזה יוצרים מחבר מקור של MirrorMaker 2.0. המחבר הזה משכפל הודעות מאשכול Kafka של המקור לאשכול Kafka של היעד.

המסוף

  1. עוברים לדף שירות מנוהל ל-Apache Kafka > Connect Clusters (חיבור אשכולות).

    מעבר אל Connect Clusters

  2. לוחצים על השם של אשכול Connect.

  3. לוחצים על יצירת מחבר.

  4. בשדה שם המחבר, מזינים מחרוזת. לדוגמה: mm2-connector.

  5. ברשימה Connector plugin, בוחרים באפשרות MirrorMaker 2.0 Source.

  6. בשדה אשכול מקור, בוחרים באפשרות אשכול של שירות מנוהל ל-Apache Kafka.

  7. ברשימה Kafka cluster, בוחרים את אשכול המקור.

  8. בתיבה Comma-separated topic names or topic regex (שמות של נושאי Kafka או ביטוי רגולרי של נושאים, בהפרדה באמצעות פסיקים), מזינים את השם של נושא Kafka או של הנושאים שרוצים לשכפל.

  9. לוחצים על יצירה.

gcloud

  1. מריצים את הפקודה gcloud managed-kafka clusters describe כדי לקבל את כתובת האתחול של אשכול Kafka של המקור.

    gcloud managed-kafka clusters describe SOURCE_KAFKA_CLUSTER \
      --location=SOURCE_REGION \
      --project=PROJECT_ID \
      --format="value(bootstrapAddress)"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SOURCE_KAFKA_CLUSTER: השם של אשכול Kafka של המקור
    • ‫SOURCE_REGION: האזור של אשכול המקור
    • ‫PROJECT_ID: מזהה הפרויקט
  2. מריצים שוב את הפקודה הקודמת כדי לקבל את כתובת ה-bootstrap של אשכול Kafka של היעד.

    gcloud managed-kafka clusters describe TARGET_KAFKA_CLUSTER \
      --location=TARGET_REGION \
      --project=PROJECT_ID \
      --format="value(bootstrapAddress)"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫TARGET_KAFKA_CLUSTER: השם של אשכול Kafka של היעד
    • ‫TARGET_REGION: האזור של אשכול היעד
  3. כדי ליצור מחבר מקור של MirrorMaker 2.0, מריצים את הפקודה gcloud managed-kafka connectors create.

    gcloud managed-kafka connectors create CONNECTOR_NAME \
      --location=TARGET_REGION \
      --connect-cluster=CONNECT_CLUSTER \
      --configs=connector.class=org.apache.kafka.connect.mirror.MirrorSourceConnector,\
    source.cluster.alias=source,\
    source.cluster.bootstrap.servers=SOURCE_CLUSTER_BOOTSTRAP_ADDRESS,\
    target.cluster.alias=target,\
    target.cluster.bootstrap.servers=TARGET_CLUSTER_BOOTSTRAP_ADDRESS,\
    tasks.max=3,\
    topics=TOPIC_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CONNECTOR_NAME: שם המחבר, למשל mm2-connector
    • ‫CONNECT_CLUSTER: השם של אשכול Connect
    • ‫SOURCE_CLUSTER_BOOTSTRAP_ADDRESS: כתובת ה-bootstrap של אשכול המקור, משלב 1.
    • ‫TARGET_CLUSTER_BOOTSTRAP_ADDRESS: כתובת ה-bootstrap של אשכול היעד, משלב 2.
    • ‫TOPIC_NAME: שם הנושא לשכפול. בפרמטר הזה אפשר גם לציין רשימה של שמות נושאים שמופרדים בפסיקים או ביטוי רגולרי.

מחבר המקור של MirrorMaker 2.0 יוצר נושא חדש באשכול היעד בשם "source.TOPIC_NAME", כאשר TOPIC_NAME הוא שם הנושא באשכול המקור.

הצגת תוצאות

כדי לוודא שההודעות משוכפלות, אפשר להשתמש בכלי שורת הפקודה של Kafka. במאמר יצירה וצריכה של הודעות באמצעות CLI מוסבר איך להגדיר את Kafka CLI.

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

export BOOTSTRAP=$(gcloud managed-kafka clusters describe SOURCE_KAFKA_CLUSTER \
 --location=SOURCE_REGION \
 --project=PROJECT_ID \
 --format="value(bootstrapAddress)"
)

for msg in {1..10}; do
  echo "message $msg"
done | kafka-console-producer.sh --topic TOPIC_NAME \
       --bootstrap-server $BOOTSTRAP --producer.config client.properties

כדי לקרוא את ההודעות המשוכפלות מאשכול היעד, מזינים את הפקודה הבאה בשורת הפקודה:

export BOOTSTRAP=$(gcloud managed-kafka clusters describe TARGET_KAFKA_CLUSTER \
 --location=TARGET_REGION \
 --project=PROJECT_ID \
 --format="value(bootstrapAddress)"
)

kafka-console-consumer.sh --topic source.TOPIC_NAME --from-beginning \
 --bootstrap-server $BOOTSTRAP --consumer.config client.properties

הפלט אמור להיראות כך:

message 1
message 2
message 3
message 4
[...]

הסרת המשאבים

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

המסוף

  1. מוחקים את מקבץ Connect.

    1. עוברים לדף שירות מנוהל ל-Apache Kafka > Connect Clusters (חיבור אשכולות).

      מעבר אל Connect Clusters

    2. בוחרים את אשכול Connect ולוחצים על מחיקה.

  2. מוחקים את מקבץ Kafka של המקור.

    1. עוברים לדף שירות מנוהל ל-Apache Kafka > Clusters (אשכולות).

      מעבר אל Clusters

    2. בוחרים את אשכול Kafka ולוחצים על מחיקה.

  3. חוזרים על השלב הקודם כדי למחוק את אשכול היעד של Kafka.

gcloud

  1. כדי למחוק את אשכול Connect, משתמשים בפקודה gcloud managed-kafka connect-clusters delete.

    gcloud managed-kafka connect-clusters delete CONNECT_CLUSTER \
      --location=TARGET_REGION --async
    
  2. כדי למחוק את אשכול Kafka של המקור, משתמשים בפקודה gcloud managed-kafka clusters delete.

    gcloud managed-kafka clusters delete SOURCE_KAFKA_CLUSTER \
      --location=SOURCE_REGION --async
    
  3. חוזרים על השלב הקודם כדי למחוק את אשכול היעד של Kafka.

    gcloud managed-kafka clusters delete TARGET_KAFKA_CLUSTER \
      --location=TARGET_REGION --async
    

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