Pub/Sub の構成

JSON ファイルに必要な構成を追加し、qsam decode コマンドで --input-parameter pubsub-publish-configuration=DataPath オプションを使用してこのファイルを指定することで、Mainframe Connector トランスコーダの Pub/Sub パブリッシュ形式を構成できます。PubsubConfiguration セクションで指定されているように、Pub/Sub パブリッシュ構成を定義する必要があります。

このページでは、トランスコーディングの入力パラメータとして構成できるさまざまな 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 メッセージに付加できる Key-Value ペアとして指定できます。この構成は、メッセージ フィルタリングや追加のメタデータの伝達に使用できます。

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 メッセージに適用する固定の Key-Value 属性のコレクション。

属性

Attributes メッセージは、属性の決定方法を定義する Attribute Key-Value ペアのコレクションを指定します。

JSON 表現
{
    "attribute": object (Attribute)
}
フィールド
attribute

object (Attribute)

Key-Value ペアのコレクションを指定します。

属性

Attribute メッセージは、Pub/Sub メッセージ属性として使用される単一の Key-Value ペアを表します。

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 メッセージは、スピルオーバー メッセージの代替トピックを指定する方法を定義します。完全なトピック名または入力トピック名に追加する接尾辞を指定できます。この 2 つのオプションは相互に排他的です。どちらか 1 つを選択する必要があります。

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 パブリッシャーは例外をスローし、パブリッシュの失敗を示します。