הגדרות Pub/Sub

אפשר להגדיר את פורמט הפרסום של Mainframe Connector ב-Pub/Sub על ידי הוספת ההגדרה הנדרשת בקובץ JSON, וציון הקובץ הזה באמצעות האפשרות --input-parameter pubsub-publish-configuration=DataPath עם הפקודה qsam decode. צריך להגדיר את ההגדרות של פרסום ב-Pub/Sub כמו שמתואר בקטע PubsubConfiguration.

בדף הזה מתוארים הפרמטרים השונים של Pub/Sub שאפשר להגדיר כפרמטרים של קלט לטרנסקוד. אובייקט PubsubPublishConfiguration מכיל את כל אפשרויות ההגדרה של מפענח Pub/Sub.

PubsubPublishConfiguration

אובייקט PubsubPublishConfiguration מאפשר להגדיר את ההודעות שנשלחות ל-Pub/Sub, והוא משמש עם הפקודה qsam decode.

ייצוג ב-JSON
{
    "attributes_configuration": object (AttributesConfiguration),
    "ordering_key_configuration": object (OrderingKeyConfiguration),
    "spillover_configuration": object (SpilloverConfiguration),
    "batching_settings": object (BatchingSettings),
    "flow_control_settings": object (FlowControlSettings),
    "concurrency_control_settings": object (ConcurrencyControlSettings)
}
שדות
attributes_configuration

object (AttributesConfiguration)

מציינים את הגדרת המאפיינים. אפשר לציין את ההגדרה כצמדי מפתח/ערך שאפשר לצרף להודעת Pub/Sub. אחר כך אפשר להשתמש בהגדרה לסינון הודעות או להעברת מטא-נתונים נוספים.

ordering_key_configuration

object (OrderingKeyConfiguration)

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

spillover_configuration

object (SpilloverConfiguration)

מציינים את ההגדרה של אופן שליחת ההודעות שחורגות מהמכסה. אם לא מגדירים את זה, הודעות שחורגות מהמכסה נשלחות לנושא הקלט עם הסיומת _spillover.
לדוגמה, אם נושא הקלט הוא projects/project_example/topics/topic_example, נושא ברירת המחדל להעברה יהיה projects/project_example/topics/topic_example_spillover.

batching_settings

object (BatchingSettings)

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

flow_control_settings

object (FlowControlSettings)

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

concurrency_control_settings

object (ConcurrencyControlSettings)

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

AttributesConfiguration

ההודעה AttributesConfiguration מציינת קבוצה קבועה של מאפיינים שמגדירים איך המאפיינים נלקחים עבור הודעות Pub/Sub.

ייצוג ב-JSON
{
    "attributes": object (Attributes)
}
שדות
attributes

object (Attributes)

אוסף של מאפיינים קבועים מסוג מפתח/ערך שיצורפו להודעות Pub/Sub.

OrderingKeyConfiguration

ההודעה OrderingKeyConfiguration מציינת מחרוזת סטטית כמפתח הסידור שקובע איך מפתח הסידור של הודעות Pub/Sub נקבע.

ייצוג ב-JSON
{
    "key": string
}
שדות
key

string

ערך המחרוזת שמשמש כמפתח לסידור ההודעה ב-Pub/Sub.

SpilloverConfiguration

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

ייצוג ב-JSON
{
    "name": string,
    "suffix": string
}
שדות
name

string

מציינים את השם המלא של משאב של נושא חלופי להודעות שמועברות בפורמט projects/{project}/topics/{topic}.

suffix

string

מציינים סיומת שתצורף לשם נושא הקלט להודעות שמועברות לנושא אחר. לדוגמה, אם נושא הקלט הוא projects/project_example/topics/my-topic והסיומת היא _errors, נושא הגיבוי יהיה projects/project_example/topics/my-topic_errors.

BatchingSettings

ההודעה BatchingSettings מאפשרת לכם לציין את הגדרות האצווה לפרסום הודעות ב-Pub/Sub. חשוב לוודא שהגדרות האצווה מוגדרות כך שיכבדו את המכסות והמגבלות המוגדרות ב-Pub/Sub. כדי להשבית את העיבוד ברצף (batch processing), מגדירים את message_count_threshold=1.

ייצוג ב-JSON
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
שדות
delay_threshold

string

מציינים את סף העיכוב שבו יש להשתמש לעיבוד באצווה. אחרי שחלף פרק הזמן שמוגדר על ידי delay_threshold (החל מההודעה הראשונה שנוספה), ההודעות נארזות ונשלחות. מומלץ לא להגדיר ערך גבוה מדי, אחרת יכול להיות שיוצג שהשיחות אף פעם לא מסתיימות. אם חשוב לכם שהעיבוד יתבצע בזמן אמת או כמעט בזמן אמת, כדאי להגדיר סף עיכוב נמוך יותר (כמה עשרות או מאות אלפיות השנייה). כך מוודאים שההודעות נשלחות במהירות. אם אתם מבצעים עיבוד ברצף (batch processing) בקנה מידה גדול, שבו מסירה מיידית היא לא קריטית, יכול להיות שסף גבוה יותר (כמה שניות) יהיה מקובל כדי לאפשר אצוות גדולות ויעילות יותר. מידע נוסף על פורמט משך הזמן זמין במאמר Duration. אם מציינים סף עיכוב של 0 שניות, המערכת מתייחסת לזה כאילו לא צוין סף עיכוב, ומשתמשת בערך ברירת המחדל. ערך ברירת המחדל הוא 1 אלפית השנייה.

element_count_threshold

long

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

request_byte_threshold

long

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

FlowControlSettings

ההודעה FlowControlSettings מאפשרת לכם לציין איך לקוח ההודעות של האתר מנהל את זרימת ההודעות אל Pub/Sub. ההגדרות האלה מונעות מהלקוח לצרוך משאבים מוגזמים או להעמיס על Pub/Sub.

ייצוג ב-JSON
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
שדות
limit_exceeded_behavior

enum (LimitExceededBehavior)

מגדירים את ההתנהגות במקרה של חריגה ממגבלות בקרה על זרימת נתונים. ערך ברירת המחדל הוא BLOCK.

max_outstanding_element_count

long

מציינים את המספר המקסימלי של הודעות שיכולות להיות בהמתנה (נשלחו אבל עדיין לא אושרו על ידי Pub/Sub). אם למחשב המרכזי שלכם יש זיכרון רב ואתם רוצים להגדיל מאוד את תפוקה גבוהה, אתם יכולים לנסות להגדיל את המספר.

max_outstanding_request_bytes

long

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

ConcurrencyControlSettings

ההודעה ConcurrencyControlSettings מאפשרת להגדיר את המקביליות של פרסום ההודעות. ההגדרות האלה משפיעות על מספר ההודעות שאפשר לשלוח בו-זמנית.

ייצוג ב-JSON
{
    "publishing_threads": int,
    "result_processing_threads": int
}
שדות
publishing_threads

int

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

result_processing_threads

int

מציינים את מספר השרשורים לעיבוד התוצאות של הודעות Pub/Sub. היא כוללת אישור של הודעות שנשלחו בהצלחה וטיפול בשגיאות שמתרחשות במהלך הפרסום. הערך 0 מציין שהמקביליות של עיבוד התוצאות מטופלת באופן סינכרוני. ערך ברירת המחדל הוא 1.

מאפיינים

ההודעה Attributes מציינת אוסף של צמדי מפתח/ערך Attribute שמגדירים איך המאפיינים נקבעים.

ייצוג ב-JSON
{
    "attribute": object (Attribute)
}
שדות
attribute

object (Attribute)

מציינים אוסף של צמדי מפתח/ערך.

מאפיין

ההודעה Attribute מייצגת צמד מפתח/ערך יחיד שמשמש כמאפיין של הודעת Pub/Sub.

ייצוג ב-JSON
{
    "key": string,
    "value": string
}
שדות
key

string

מציינים את המפתח של המאפיין.

value

string

מציינים את ערך המאפיין.

LimitExceededBehavior

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

טיפוסים בני מנייה (enum)
BLOCK הפרסום ב-Pub/Sub ייחסם אם תהיה חריגה מהמגבלות. המשמעות היא שלא ניתן לפרסם הודעות נוספות עד שיהיו משאבים זמינים.
IGNORE הכלי לפרסום ב-Pub/Sub יתעלם מהמגבלות וימשיך לפרסם גם אם הן ייחרגו. הדבר עלול להוביל לצריכת משאבים מוגברת.
THROW_EXCEPTION אם חורגים מהמגבלות, המפרסם של Pub/Sub יציג חריגה, שתציין שהפרסום נכשל.