Pub/Sub の構成

Mainframe Connector トランスコーダーの Pub/Sub 公開形式を構成するには、必要な構成を JSON ファイルに追加し、qsam decode コマンドを使用して --input-parameter pubsub-publish-configuration=DataPath オプションでこのファイルを指定します。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 メッセージに添付できる Key-Value ペアとして指定できます。この構成は、メッセージのフィルタリングや追加のメタデータの伝達に使用できます。

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

OrderingKeyConfiguration

OrderingKeyConfiguration メッセージでは、Pub/Sub メッセージの順序指定キーの決定方法を定義する順序指定キーとして静的文字列を指定します。

JSON 表現
{
    "key": string
}
フィールド
key

string

Pub/Sub メッセージの順序付けキーとして使用する文字列値。

SpilloverConfiguration

SpilloverConfiguration メッセージは、スピルオーバー メッセージの代替トピックを指定する方法を定義します。トピック名全体を指定することも、入力トピック名に接尾辞を追加することもできます。この 2 つのオプションは相互に排他的です。どちらか一方を選択する必要があります。

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 ms です。

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 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

属性の値を指定します。

LimitExceededBehavior

LimitExceededBehavior 列挙型を使用すると、フロー制御の上限を超えた場合の動作を構成できます。

列挙型
BLOCK 上限を超えると、Pub/Sub パブリッシャーはブロックされます。これにより、リソースが使用可能になるまで、メッセージの公開がブロックされます。
IGNORE Pub/Sub パブリッシャーは上限を無視し、上限を超えてもパブリッシュを続けます。これにより、リソースの消費量が増加する可能性があります。
THROW_EXCEPTION Pub/Sub パブリッシャーは、上限を超えると例外をスローし、パブリッシュに失敗したことを示します。