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),
    "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 发布方会抛出异常,表示发布失败。