Pub/Sub 設定

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

本頁面說明可設定為轉碼輸入參數的各種 Pub/Sub 參數。PubsubPublishConfiguration 物件包含所有 Pub/Sub 解碼器設定選項。

PubsubPublishConfiguration

PubsubPublishConfiguration 物件可讓您設定要傳送至 Pub/Sub 的訊息,並搭配 qsam decode 指令使用。

JSON 表示法
{
    "attributes_configuration": object (AttributesConfiguration),
    "batching_settings": object (BatchingSettings),
    "concurrency_control_settings": object (ConcurrencyControlSettings),
    "flow_control_settings": object (FlowControlSettings),
    "ordering_key_configuration": object (OrderingKeyConfiguration),
    "spillover_configuration": object (SpilloverConfiguration)
}
欄位
attributes_configuration

object (AttributesConfiguration)

指定屬性設定。您可以將設定指定為鍵/值組合,並附加至 Pub/Sub 訊息。 設定完成後,即可用於篩選訊息或傳達其他中繼資料。

batching_settings

object (BatchingSettings)

指定發布訊息的批次設定。批次處理功能預設為停用。 詳情請參閱「使用批次設定發布」。

concurrency_control_settings

object (ConcurrencyControlSettings)

為發布端用戶端指定並行和訊息處理設定。 這些設定可控制發布訊息的平行處理、確認成功傳送,以及處理發布程序期間發生的任何錯誤。詳情請參閱「並行控制」。

flow_control_settings

object (FlowControlSettings)

指定要用於發布訊息的流量控制設定。根據預設,系統會停用流量控制設定。 詳情請參閱「發布訊息並設定流量控制」。

ordering_key_configuration

object (OrderingKeyConfiguration)

指定排序鍵設定。這項設定會驗證排序鍵相同的訊息是否依序傳送。 如果未設定這項設定,系統無法保證訊息順序。

spillover_configuration

object (SpilloverConfiguration)

指定溢出郵件的傳送方式設定。 如果未設定,溢出訊息會傳送至輸入主題,並加上 _spillover 後置字串。
舉例來說,如果輸入主題是 projects/project_example/topics/topic_example, 預設溢出主題就會是 projects/project_example/topics/topic_example_spillover

AttributesConfiguration

AttributesConfiguration 訊息會指定一組固定的屬性,定義如何為 Pub/Sub 訊息取得屬性。

JSON 表示法
{
    "attributes": object (Attributes)
}
欄位
attributes

object (Attributes)

要附加至 Pub/Sub 訊息的固定鍵值屬性集合。

屬性

Attributes 訊息會指定一組 Attribute 鍵/值組合,用於定義屬性的判斷方式。

JSON 表示法
{
    "attribute": object (Attribute)
}
欄位
attribute

object (Attribute)

指定鍵/值組合的集合。

屬性

Attribute 訊息代表單一鍵/值組合,用做 Pub/Sub 訊息屬性。

JSON 表示法
{
    "key": string,
    "value": string
}
欄位
key

string

指定屬性的鍵。

value

string

指定屬性的值。

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 個位元組。

ConcurrencyControlSettings

您可以使用 ConcurrencyControlSettings 訊息設定訊息發布的平行處理程序。 這些設定會影響可同時傳送的訊息數量。

JSON 表示法
{
    "publishing_threads": int,
    "result_processing_threads": int
}
欄位
publishing_threads

int

指定發布訊息的處理執行緒數量。這個值應小於或等於可用的核心數。 如果執行緒數為 0,系統會同步處理發布作業。

result_processing_threads

int

指定處理 Pub/Sub 訊息結果的執行緒數量。 包括確認訊息是否成功傳送,以及處理發布期間發生的任何錯誤。 如果值為 0,表示結果處理平行處理作業會同步處理。 預設值為 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

指定未處理郵件的總大小上限 (以位元組為單位)。

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

列舉

LimitExceededBehavior

您可以使用 LimitExceededBehavior 列舉,設定超出流量控制限制時的行為。

列舉
BLOCK 超出限制時,Pub/Sub 發布者會封鎖。資源可用前,系統會禁止發布其他訊息。
IGNORE 超過限制時,Pub/Sub 發布者會忽略限制並繼續發布。這可能會導致資源耗用量增加。
THROW_EXCEPTION 如果超過限制,Pub/Sub 發布者會擲回例外狀況,表示發布失敗。