Configuración de Pub/Sub

Para configurar el formato de publicación de Pub/Sub del transcodificador de Mainframe Connector, agrega la configuración requerida en un archivo JSON y especifícalo con la opción --input-parameter pubsub-publish-configuration=DataPath con el comando qsam decode. Debes definir la configuración de publicación de Pub/Sub como se especifica en la sección PubsubConfiguration.

En esta página, se describen los diversos parámetros de Pub/Sub que puedes configurar como parámetros de entrada para la transcodificación. El objeto PubsubPublishConfiguration contiene todas las opciones de configuración del decodificador de Pub/Sub.

PubsubPublishConfiguration

El objeto PubsubPublishConfiguration te permite configurar los mensajes que se envían a Pub/Sub y se usa con el comando qsam decode.

Representación 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)
}
Campos
attributes_configuration

object (AttributesConfiguration)

Especifica la configuración de los atributos. Puedes especificar la configuración como pares clave-valor que se pueden adjuntar a un mensaje de Pub/Sub. Luego, la configuración se puede usar para filtrar mensajes o transmitir metadatos adicionales.

ordering_key_configuration

object (OrderingKeyConfiguration)

Especifica la configuración de la clave de orden. Esta configuración verifica que los mensajes con la misma clave de ordenamiento se entreguen en orden. Si no estableces esta configuración, no se garantiza el orden de los mensajes.

spillover_configuration

object (SpilloverConfiguration)

Especifica la configuración para enviar los mensajes de desbordamiento. Si no se establece, los mensajes de desbordamiento se envían al tema de entrada con un sufijo _spillover.
Por ejemplo, si el tema de entrada es projects/project_example/topics/topic_example, el tema de desbordamiento predeterminado sería projects/project_example/topics/topic_example_spillover.

batching_settings

object (BatchingSettings)

Especifica la configuración por lotes para publicar mensajes. De forma predeterminada, el procesamiento por lotes está inhabilitado. Para obtener más información, consulta Cómo publicar con la configuración por lotes.

flow_control_settings

object (FlowControlSettings)

Especifica la configuración de control de flujo que se usará para publicar mensajes. De forma predeterminada, la configuración del control de flujo está inhabilitada. Para obtener más información, consulta Publica mensajes con la configuración del control de flujo.

concurrency_control_settings

object (ConcurrencyControlSettings)

Especifica la configuración de procesamiento de mensajes y simultaneidad para el cliente del publicador. Estos parámetros de configuración controlan el paralelismo para publicar mensajes, confirmar las publicaciones correctas y controlar los errores durante el proceso de publicación. Para obtener más información, consulta Control de simultaneidad.

AttributesConfiguration

El mensaje AttributesConfiguration especifica un conjunto fijo de atributos que definen cómo se obtienen los atributos para los mensajes de Pub/Sub.

Representación JSON
{
    "attributes": object (Attributes)
}
Campos
attributes

object (Attributes)

Es una colección de atributos clave-valor fijos que se adjuntarán a los mensajes de Pub/Sub.

OrderingKeyConfiguration

El mensaje OrderingKeyConfiguration especifica una cadena estática como la clave de orden que define cómo se determina la clave de orden para los mensajes de Pub/Sub.

Representación JSON
{
    "key": string
}
Campos
key

string

Es el valor de cadena que se usará como clave de orden para el mensaje de Pub/Sub.

SpilloverConfiguration

El mensaje SpilloverConfiguration define cómo especificar un tema alternativo para los mensajes de desbordamiento. Puedes especificar un nombre de tema completo o un sufijo para agregar al nombre de tema de entrada. Estas dos opciones son mutuamente excluyentes, por lo que debes elegir una.

Representación JSON
{
    "name": string,
    "suffix": string
}
Campos
name

string

Especifica el nombre de recurso completo de un tema alternativo para los mensajes de desbordamiento en el formato projects/{project}/topics/{topic}.

suffix

string

Especifica un sufijo para agregarlo al nombre del tema de entrada de los mensajes de desbordamiento. Por ejemplo, si el tema de entrada es projects/project_example/topics/my-topic y el sufijo es _errors, el tema de desbordamiento sería projects/project_example/topics/my-topic_errors.

BatchingSettings

El mensaje BatchingSettings te permite especificar la configuración por lotes para publicar mensajes en Pub/Sub. Debes verificar que la configuración por lotes esté configurada para respetar las cuotas y límites de Pub/Sub definidos. Para inhabilitar el procesamiento por lotes, establece message_count_threshold=1.

Representación JSON
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
Campos
delay_threshold

string

Especifica el umbral de demora que se usará para el procesamiento por lotes. Después de que transcurra la cantidad de tiempo definida por delay_threshold (a partir del primer mensaje agregado), los mensajes se agrupan en un lote y se envían. Te recomendamos que no establezcas este valor demasiado alto. De lo contrario, es posible que las llamadas nunca se completen. Si priorizas el procesamiento en tiempo real o casi en tiempo real, te recomendamos que establezcas un umbral de retraso más bajo (unas decenas o cientos de milisegundos). Esto verifica que los mensajes se envíen rápidamente. Si tienes que realizar un procesamiento por lotes a gran escala en el que la entrega inmediata no es fundamental, es posible que se acepte un umbral más alto (unos segundos) para permitir lotes más grandes y eficientes. Para obtener más información sobre el formato de duración, consulta Duration. Si se proporciona un umbral de demora de 0 segundos, se considera como si no se hubiera proporcionado un umbral de demora y se usa el valor predeterminado. El valor predeterminado es 1 ms.

element_count_threshold

long

Especifica el límite de recuento de mensajes que se usará para el procesamiento por lotes. Después de que se acumula la cantidad de mensajes definidos por message_count_threshold, se agrupan en un lote y se envían, incluso si aún no transcurrió el umbral de demora. Si tus mensajes son pequeños de forma constante, considera aumentar el umbral de recuento de mensajes. El valor predeterminado es 1.

request_byte_threshold

long

Especifica el tamaño máximo en bytes de los mensajes que se acumularán antes de enviar un lote a Pub/Sub. Esto se aplica incluso si aún no se superan los umbrales de retraso o recuento de mensajes. Si tus mensajes son pequeños de forma constante, considera aumentar el umbral de bytes. El valor predeterminado es 1 byte.

FlowControlSettings

El mensaje FlowControlSettings te permite especificar cómo el cliente publicador administra el flujo de mensajes a Pub/Sub. Esta configuración evita que el cliente consuma recursos excesivos o abrume a Pub/Sub.

Representación JSON
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
Campos
limit_exceeded_behavior

enum (LimitExceededBehavior)

Especifica el comportamiento cuando se superan los límites de control de flujo. El valor predeterminado es BLOCK.

max_outstanding_element_count

long

Especifica la cantidad máxima de mensajes que pueden estar pendientes (enviados, pero que Pub/Sub aún no confirmó). Si tu mainframe tiene memoria abundante y deseas enviar una capacidad de procesamiento muy alta, puedes intentar aumentar el recuento.

max_outstanding_request_bytes

long

Especifica el tamaño total máximo en bytes de los mensajes pendientes.

ConcurrencyControlSettings

El mensaje ConcurrencyControlSettings te permite configurar el paralelismo de la publicación de mensajes. Esta configuración influye en la cantidad de mensajes que se pueden enviar de forma simultánea.

Representación JSON
{
    "publishing_threads": int,
    "result_processing_threads": int
}
Campos
publishing_threads

int

Especifica la cantidad de subprocesos de procesamiento para publicar mensajes. El valor debe ser igual o menor que la cantidad de núcleos disponibles. Si la cantidad de subprocesos es 0, la publicación se controla de forma síncrona.

result_processing_threads

int

Especifica la cantidad de subprocesos para procesar los resultados de los mensajes de Pub/Sub. Esto incluye confirmar los mensajes enviados correctamente y controlar los errores que se produzcan durante la publicación. Un valor de 0 significa que el paralelismo de procesamiento de resultados se controla de forma síncrona. El valor predeterminado es 1.

Atributos

El mensaje Attributes especifica una colección de pares clave-valor Attribute que definen cómo se determinan los atributos.

Representación JSON
{
    "attribute": object (Attribute)
}
Campos
attribute

object (Attribute)

Especifica una colección de pares clave-valor.

Atributo

El mensaje Attribute representa un solo par clave-valor que se usa como atributo de mensaje de Pub/Sub.

Representación JSON
{
    "key": string,
    "value": string
}
Campos
key

string

Especifica la clave del atributo.

value

string

Especifica el valor del atributo.

LimitExceededBehavior

La enumeración LimitExceededBehavior te permite configurar el comportamiento cuando se superan los límites de control de flujo.

Enums
BLOCK El publicador de Pub/Sub bloqueará el contenido cuando se superen los límites. Esto evita que se publiquen más mensajes hasta que los recursos estén disponibles.
IGNORE El publicador de Pub/Sub ignorará los límites y seguirá publicando cuando se superen. Esto puede aumentar el consumo de recursos.
THROW_EXCEPTION El publicador de Pub/Sub arrojará una excepción cuando se superen los límites, lo que indicará que no se pudo realizar la publicación.