Pub/Sub 設定

您可以透過在 JSON 檔案中新增必要的設定,並使用 --input-parameter pubsub-publish-configuration=DataPath 選項搭配 qsam decode 指令指定此檔案,來設定 Mainframe Connector 轉碼器的 Pub/Sub 發布格式。您必須按照 PubsubConfiguration 一節所述定義 Pub/Sub 發布設定。

本頁面說明可用於轉碼作業的輸入參數,以及可設定的各種 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 配額和限制。如要停用批次處理功能,請設定 message_count_threshold=1

JSON 表示法
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
欄位
delay_threshold

string

指定用於批次處理的延遲門檻。在 delay_threshold 定義的時間 (從新增第一則訊息開始計算) 過後,系統會將訊息分批包裝並傳送。建議您不要將這個值設得太高,否則通話可能會一直處於未完成的狀態。如果您優先考量即時或近乎即時的處理作業,則應降低延遲門檻 (幾十或數百毫秒)。這麼做可驗證訊息是否能快速傳送。如果您要處理大型批次處理作業,且不需立即提交,則可設定較高的閾值 (幾秒),以便處理更大、更有效率的批次。如要進一步瞭解時間長度格式,請參閱 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

指定要發布訊息的處理執行緒數量。這個值應等於或小於可用的核心數。如果執行緒數量為 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 列舉可讓您設定超出流程控制限制時的行為。

列舉
BLOCK 超過限制時,Pub/Sub 發布者會封鎖。這麼做可避免在資源可用之前,繼續發布其他訊息。
IGNORE Pub/Sub 發布者會忽略限制,並在超過限制時繼續發布。這可能會導致資源用量增加。
THROW_EXCEPTION 超過限制時,Pub/Sub 發布者會擲回例外狀況,表示發布失敗。