Rabbit MQ

מחבר Rabbit MQ מספק קישוריות ל-Rabbit MQ.

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

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

  • בפרויקט שלכם ב-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. בקטע מיקום, בוחרים את המיקום של החיבור.
    1. אזור: בוחרים מיקום מהרשימה הנפתחת.

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

    2. לוחצים על הבא.
  4. בקטע פרטי החיבור, ממלאים את הפרטים הבאים:
    1. מחבר: בוחרים באפשרות RabbitMQ מהרשימה הנפתחת של המחברים הזמינים.
    2. גרסת כלי החיבור: בוחרים את גרסת כלי החיבור מהרשימה הנפתחת של הגרסאות הזמינות.
    3. בשדה Connection Name (שם החיבור), מזינים שם למופע החיבור.

      השמות של החיבורים צריכים לעמוד בקריטריונים הבאים:

      • שמות החיבורים יכולים לכלול אותיות, מספרים או מקפים.
      • האותיות צריכות להיות קטנות.
      • שמות החיבורים צריכים להתחיל באות ולהסתיים באות או במספר.
      • שמות החיבורים לא יכולים לכלול יותר מ-49 תווים.
      • במחברים שתומכים בהרשמה לאירועים, שמות החיבורים לא יכולים להתחיל בקידומת goog.
    4. אופציונלי: מזינים תיאור למופע החיבור.
    5. חשבון שירות: בוחרים חשבון שירות שיש לו את התפקידים הנדרשים.
    6. כדי להשתמש בחיבור למינויים לאירועים, בוחרים באפשרות הפעלת מינוי לאירועים. בחירה באפשרות הזו מפעילה את המינוי לאירוע עם פעולות.
    7. אופציונלי: מגדירים את ההגדרות של צומת החיבור:

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

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

    8. שם תור ברירת המחדל: השם של תור ברירת המחדל, יכול להיות שיוחלף כשמבצעים פעולה.
    9. Virtual Host: המארח הווירטואלי של RabbitMQ.
    10. אופציונלי: לוחצים על + הוספת תווית כדי להוסיף תווית לקישור בצורה של צמד מפתח/ערך.
    11. אם רוצים להשתמש ב-SSL, בוחרים באפשרות הפעלת SSL. יוצגו פרטי ההגדרה של SSL.
      1. בוחרים סוג של מאגר אישורים. הוא יכול להיות גלוי לכולם, פרטי או חיבור לא מאובטח.
      2. בוחרים את האישורים שמוצגים על סמך הבחירה שלכם במאגר האישורים.
      3. אם אתם משתמשים ב-mTLS, בוחרים את האישורים של מאגר המפתחות בקטע Key Store.
      4. אופציונלי: בוחרים את גרסת ה-TLS.
      5. מזינים את סט האלגוריתמים להצפנה הנתמך. מזינים כמה חבילות הצפנה, כערכים מופרדים בפסיקים. מידע נוסף זמין במאמר בנושא חבילות הצפנה נתמכות.
    12. לוחצים על הבא.
  5. בקטע יעדים, מזינים את הפרטים של המארח המרוחק (מערכת העורף) שאליו רוצים להתחבר.
    1. סוג היעד: בוחרים סוג יעד.
      • כדי לציין את שם המארח או את כתובת ה-IP של היעד, בוחרים באפשרות כתובת המארח ומזינים את הכתובת בשדה מארח 1.
      • כדי ליצור חיבור פרטי, בוחרים באפשרות Endpoint attachment (צירוף נקודת קצה). ברשימה Endpoint Attachment, בוחרים את קובץ ה-Endpoint Attachment שנוצר עבור מערכת ה-Backend.

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

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

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

      • אנונימי
      • שם משתמש וסיסמה
    2. כדי להבין איך להגדיר את סוגי האימות האלה, אפשר לעיין במאמר בנושא הגדרת אימות.

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

הגדרת אימות

מזינים את הפרטים בהתאם לאימות שבו רוצים להשתמש.

  • אנונימי

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

  • שם משתמש וסיסמה
    • שם משתמש: שם המשתמש ב-RabbitMQ שבו ישתמשו לחיבור.
    • ‫Password: סוד ב-Secret Manager שמכיל את הסיסמה שמשויכת לשם המשתמש ב-RabbitMQ.

ישויות, פעולות ופעולות

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

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

    עם זאת, יכול להיות שמחבר לא תומך בישויות או שאין לו ישויות, ובמקרה כזה הרשימה Entities תהיה ריקה.

  • פעולה: פעולה היא הפעילות שאפשר לבצע בישות. אפשר לבצע כל אחת מהפעולות הבאות בישות:

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

  • פעולה: פעולה היא פונקציה מסוג first class שזמינה לשילוב דרך ממשק המחבר. פעולה מאפשרת לבצע שינויים בישות אחת או בכמה ישויות, והיא משתנה ממתחם למתחם. בדרך כלל, לפעולה יהיו כמה פרמטרים של קלט ופרמטר של פלט. עם זאת, יכול להיות שמחבר לא תומך באף פעולה, ובמקרה כזה הרשימה Actions תהיה ריקה.

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

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

  • מקסימום 9 עסקאות, אם אתם משתמשים בעיקר בפעולה sendMessage.
  • טרנזקציה אחת, אם אתם משתמשים בעיקר בפעולה requestReply.

כברירת מחדל, Integration Connectors מקצה 2 צמתים (לזמינות טובה יותר) לחיבור.

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

פעולות

חיבור Rabbit MQ תומך בפעולות הבאות:

  • ‫sendMessage: שליחת הודעה לתור.
  • ‫requestReply: שולח הודעה לתור ומציין גם את תור התגובה שאליו המשיב צריך לכתוב את התגובה.

פעולת שליחת הודעה

בטבלאות הבאות מתוארים פרמטרי הקלט והפלט של הפעולה sendMessage.

פרמטרים של קלט לפעולה sendMessage

שם הפרמטר חובה סוג נתונים תיאור
הודעה כן String ההודעה שתישלח לתור של Rabbit MQ. נכון לעכשיו, הגודל המקסימלי של הודעה שנתמך הוא 10MB.
queueName לא String השם של התור ב-Rabbit MQ. אם לא מציינים שם תור, נעשה שימוש בשם התור שמוגדר כברירת מחדל שצוין במהלך יצירת החיבור.
messageContentType כן String סוג התוכן של ההודעה, שאפשר לציין אותו כ-Text או כ-Bytes. אם שולחים נתונים בינאריים, צריך להגדיר את הסוג כ-Bytes.

כדי לשלוח הודעה בפורמט בינארי, צריך לבצע את המשימות הבאות:

  • מקודדים את ההודעה הבינארית כמחרוזת Base64, ואז מגדירים את הפרמטר message לערך המקודד.
  • מגדירים את הערך של הפרמטר messageContentType ל-Bytes.
messageType כן String סוג ההודעה שאפשר לציין כ-Datagram או כ-Reply.
topicName לא String השם של נושא Rabbit MQ. אם לא מציינים שם של נושא, נעשה שימוש בשם התור שמוגדר כברירת מחדל שצוין במהלך יצירת החיבור.

פרמטרים של פלט של הפעולה sendMessage

שם הפרמטר סוג נתונים תיאור
messageId String המזהה של ההודעה שנשלחה.

פעולת בקשת התשובה

בטבלאות הבאות מתוארים פרמטרי הקלט והפלט של הפעולה requestReply.

פרמטרים של קלט לפעולה requestReply

שם הפרמטר חובה סוג נתונים תיאור
הודעה כן String ההודעה שתישלח לתור של Rabbit MQ. הגודל המקסימלי של הודעה שנתמך הוא 10MB.
queueName לא String השם של התור ב-Rabbit MQ. אם לא מציינים שם תור, נעשה שימוש בשם התור שמוגדר כברירת מחדל שצוין במהלך יצירת החיבור.
messageContentType כן String סוג התוכן של ההודעה, שאפשר לציין אותו כ-Text או כ-Bytes. אם שולחים נתונים בינאריים, צריך להגדיר את הסוג כ-Bytes.

כדי לשלוח הודעה בפורמט בינארי, צריך לבצע את המשימות הבאות:

  • מקודדים את ההודעה הבינארית כמחרוזת Base64, ואז מגדירים את הפרמטר message לערך המקודד.
  • מגדירים את הערך של הפרמטר messageContentType ל-Bytes.
replyToQueue כן String התור שבו המשיב צריך לכתוב את התשובה.
replyTimeout כן String הזמן (באלפיות השנייה) שעד אליו המחבר ממתין לתגובה בתור התגובות. הערך המקסימלי שנתמך הוא 180,000 מילישניות (3 דקות).

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

פרמטרים של פלט של הפעולה requestReply

שם הפרמטר סוג נתונים תיאור
replyMessage String הודעת תשובה מהמשיב.

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

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

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

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

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

שם הפרמטר סוג נתונים חובה תיאור
default_queue_name מחרוזת לא נכון השם של תור ברירת המחדל, יכול להיות שיוחלף כשמבצעים פעולה.
default_topic_name מחרוזת לא נכון שם הנושא שמוגדר כברירת מחדל. אפשר לשנות אותו כשמבצעים פעולה.
virtual_host מחרוזת נכון המארח הווירטואלי של rabbit MQ.

שימוש בחיבור Rabbit MQ בשילוב

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

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