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 消息的键值对。然后,该配置可用于过滤消息或传递其他元数据。

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 发布者会抛出异常,表明发布失败。