Configuração do Pub/Sub

É possível configurar a formatação de publicação do Pub/Sub do Mainframe Connector adicionando a configuração necessária em um arquivo JSON e especificando esse arquivo usando a opção --input-parameter pubsub-publish-configuration=DataPath com o comando qsam decode. Defina a configuração de publicação do Pub/Sub conforme especificado na seção PubsubConfiguration.

Esta página descreve os vários parâmetros do Pub/Sub que podem ser configurados como parâmetros de entrada para a transcodificação. O objeto PubsubPublishConfiguration contém todas as opções de configuração do decodificador do Pub/Sub.

PubsubPublishConfiguration

O objeto PubsubPublishConfiguration permite configurar as mensagens enviadas ao Pub/Sub e é usado com o comando qsam decode.

Representação 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)

Especifique a configuração dos atributos. É possível especificar a configuração como pares de chave-valor que podem ser anexados a uma mensagem do Pub/Sub. A configuração pode ser usada para filtrar mensagens ou transmitir outros metadados.

ordering_key_configuration

object (OrderingKeyConfiguration)

Especifique a configuração da chave de ordenação. Essa configuração verifica se as mensagens com a mesma chave de ordem são entregues em ordem. Se você não definir essa configuração, a ordem das mensagens não será garantida.

spillover_configuration

object (SpilloverConfiguration)

Especifique a configuração de como as mensagens de spillover são enviadas. Se não for definido, as mensagens de transbordo serão enviadas para o tópico de entrada com um sufixo _spillover.
Por exemplo, se o tópico de entrada for projects/project_example/topics/topic_example, o tópico de spillover padrão será projects/project_example/topics/topic_example_spillover.

batching_settings

object (BatchingSettings)

Especifique as configurações de lote para publicar mensagens. Por padrão, o processamento em lote fica desativado. Para mais informações, consulte Publicar com configurações em lote.

flow_control_settings

object (FlowControlSettings)

Especifique as configurações de controle de fluxo a serem usadas para publicar mensagens. Por padrão, as configurações de controle de fluxo estão desativadas. Para mais informações, consulte Publicar mensagens com as configurações do controle de fluxo.

concurrency_control_settings

object (ConcurrencyControlSettings)

Especifique as configurações de processamento de mensagens e simultaneidade para o cliente do editor. Essas configurações controlam o paralelismo para publicar mensagens, reconhecer entregas bem-sucedidas e processar erros durante o processo de publicação. Para mais informações, consulte Controle de simultaneidade.

AttributesConfiguration

A mensagem AttributesConfiguration especifica um conjunto fixo de atributos que definem como os atributos são originados para mensagens do Pub/Sub.

Representação JSON
{
    "attributes": object (Attributes)
}
Campos
attributes

object (Attributes)

Uma coleção de atributos de chave-valor fixos a serem anexados às mensagens do Pub/Sub.

OrderingKeyConfiguration

A mensagem OrderingKeyConfiguration especifica uma string estática como a chave de ordenação que define como a chave de ordenação das mensagens do Pub/Sub é determinada.

Representação JSON
{
    "key": string
}
Campos
key

string

O valor da string a ser usado como chave de ordenação da mensagem do Pub/Sub.

SpilloverConfiguration

A mensagem SpilloverConfiguration define como especificar um tópico alternativo para mensagens de transbordamento. Você pode especificar um nome de tópico completo ou um sufixo para anexar ao nome de tópico de entrada. Essas duas opções são mutuamente exclusivas. Você precisa escolher uma.

Representação JSON
{
    "name": string,
    "suffix": string
}
Campos
name

string

Especifique o nome completo do recurso de um tópico alternativo para mensagens de spillover no formato projects/{project}/topics/{topic}.

suffix

string

Especifique um sufixo para anexar ao nome do tópico de entrada para mensagens de spillover. Por exemplo, se o tópico de entrada for projects/project_example/topics/my-topic e o sufixo for _errors, o tópico de spillover será projects/project_example/topics/my-topic_errors.

BatchingSettings

A mensagem BatchingSettings permite especificar as configurações de lote para publicar mensagens no Pub/Sub. Verifique se as configurações de lote estão configuradas para respeitar as cotas e os limites do Pub/Sub. Para desativar o processamento em lote, defina message_count_threshold=1.

Representação JSON
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
Campos
delay_threshold

string

Especifique o limite de atraso a ser usado no processamento em lote. Depois que o tempo definido por delay_threshold tiver decorrido (contando a partir da primeira mensagem adicionada), as mensagens serão agrupadas em um lote e enviadas. Recomendamos que você não defina esse valor muito alto. Caso contrário, as chamadas podem parecer que nunca foram concluídas. Se você priorizar o processamento em tempo real ou quase em tempo real, vai precisar de um limite de atraso menor (algumas dezenas ou centenas de milissegundos). Isso verifica se as mensagens são enviadas rapidamente. Se você estiver lidando com um processamento em lote em grande escala em que a entrega imediata não é essencial, um limite mais alto (alguns segundos) pode ser aceitável para permitir lotes maiores e mais eficientes. Para mais informações sobre o formato de duração, consulte Duration. Se um limite de atraso de 0 segundos for fornecido, será considerado como se um limite de atraso não tivesse sido fornecido, e o padrão será usado. O valor padrão é 1 ms.

element_count_threshold

long

Especifique o limite de contagem de mensagens a ser usado no processamento em lote. Depois que o número de mensagens definido por message_count_threshold é acumulado, elas são agrupadas e enviadas, mesmo que o limite de atraso ainda não tenha decorrido. Se as mensagens forem pequenas, aumente o limite de contagem de mensagens. O valor padrão é 1.

request_byte_threshold

long

Especifique o tamanho máximo em bytes das mensagens a serem acumuladas antes de enviar um lote para o Pub/Sub. Isso se aplica mesmo que os limites de atraso ou de contagem de mensagens ainda não tenham sido excedidos. Se as mensagens forem sempre pequenas, aumente o limite de bytes. O valor padrão é 1 byte.

FlowControlSettings

A mensagem FlowControlSettings permite especificar como o cliente editor gerencia o fluxo de mensagens para o Pub/Sub. Essas configurações impedem que o cliente consuma recursos em excesso ou sobrecarregue o Pub/Sub.

Representação JSON
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
Campos
limit_exceeded_behavior

enum (LimitExceededBehavior)

Especifica o comportamento quando os limites de controle de fluxo são excedidos. O valor padrão é BLOCK.

max_outstanding_element_count

long

Especifica o número máximo de mensagens pendentes (enviadas, mas ainda não confirmadas pelo Pub/Sub). Se o mainframe tiver muita memória e você quiser aumentar muito a capacidade de processamento, tente aumentar a contagem.

max_outstanding_request_bytes

long

Especifica o tamanho total máximo em bytes das mensagens pendentes.

ConcurrencyControlSettings

A mensagem ConcurrencyControlSettings permite configurar o paralelismo da publicação de mensagens. Essas configurações influenciam quantas mensagens podem ser enviadas ao mesmo tempo.

Representação JSON
{
    "publishing_threads": int,
    "result_processing_threads": int
}
Campos
publishing_threads

int

Especifique o número de linhas de execução de processamento para publicar mensagens. O valor precisa ser igual ou menor que o número de cores disponíveis. Se o número de linhas for 0, a publicação será processada de forma síncrona.

result_processing_threads

int

Especifique o número de linhas de execução para processar os resultados das mensagens do Pub/Sub. Isso inclui o reconhecimento de mensagens enviadas com sucesso e o tratamento de erros que ocorrem durante a publicação. Um valor de 0 significa que o paralelismo de processamento de resultados é processado de forma síncrona. O valor padrão é 1.

Atributos

A mensagem Attributes especifica uma coleção de pares de chave-valor Attribute que definem como os atributos são determinados.

Representação JSON
{
    "attribute": object (Attribute)
}
Campos
attribute

object (Attribute)

Especifique uma coleção de pares de chave-valor.

Atributo

A mensagem Attribute representa um único par de chave-valor usado como um atributo de mensagem do Pub/Sub.

Representação JSON
{
    "key": string,
    "value": string
}
Campos
key

string

Especifique a chave do atributo.

value

string

Especifique o valor do atributo.

LimitExceededBehavior

O tipo enumerado LimitExceededBehavior permite configurar o comportamento quando os limites de controle de fluxo são excedidos.

Enums
BLOCK O editor do Pub/Sub vai bloquear quando os limites forem excedidos. Isso impede a publicação de outras mensagens até que os recursos estejam disponíveis.
IGNORE O editor do Pub/Sub vai ignorar os limites e continuar publicando quando eles forem excedidos. Isso pode aumentar o consumo de recursos.
THROW_EXCEPTION O editor do Pub/Sub vai gerar uma exceção quando os limites forem excedidos, indicando uma falha na publicação.