Configuração do Pub/Sub

É possível configurar a formatação de publicação do Pub/Sub do transcodificador 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. Você precisa definir a configuração de publicação do Pub/Sub conforme especificado na seção PubsubConfiguration.

Nesta página, descrevemos os vários parâmetros do Pub/Sub que podem ser configurados como parâmetros de entrada para 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),
    "batching_settings": object (BatchingSettings),
    "concurrency_control_settings": object (ConcurrencyControlSettings),
    "flow_control_settings": object (FlowControlSettings),
    "ordering_key_configuration": object (OrderingKeyConfiguration),
    "spillover_configuration": object (SpilloverConfiguration)
}
Campos
attributes_configuration

object (AttributesConfiguration)

Especifique a configuração de 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 filtragem de mensagens ou para transmitir metadados adicionais.

batching_settings

object (BatchingSettings)

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

concurrency_control_settings

object (ConcurrencyControlSettings)

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

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.

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 ordenação 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 transbordamento são enviadas. Se não for definido, as mensagens excedentes 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 transbordamento padrão será projects/project_example/topics/topic_example_spillover.

AttributesConfiguration

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

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

object (Attributes)

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

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.

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 limites do Pub/Sub definidos. 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 para o processamento em lote. Depois que o período definido por delay_threshold expirar (contando 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 são concluídas. Se você priorizar o processamento em tempo real ou quase em tempo real, vai querer 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 o 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 nenhum limite de atraso 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 em um lote e enviadas, mesmo que o limite de atraso ainda não tenha decorrido. Se as mensagens forem consistentemente 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 vale mesmo que os limites de atraso ou contagem de mensagens ainda não tenham sido excedidos. Se as mensagens forem consistentemente pequenas, aumente o limite de bytes. O valor padrão é 1 byte.

ConcurrencyControlSettings

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

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 núcleos disponíveis. Se o número de linhas de execução 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 reconhecer mensagens enviadas com sucesso e processar erros que ocorrem durante a publicação. Um valor de 0 significa que o paralelismo de processamento de resultados é tratado de forma síncrona. O valor padrão é 1.

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

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

max_outstanding_element_count

long

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

max_outstanding_request_bytes

long

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

OrderingKeyConfiguration

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

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

string

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

SpilloverConfiguration

A mensagem SpilloverConfiguration define como especificar um tópico alternativo para mensagens de transbordamento. É possível especificar um nome de tópico completo ou um sufixo a ser anexado ao nome do tópico de entrada. Essas duas opções são mutuamente exclusivas. Você precisa escolher uma delas.

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

string

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

suffix

string

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

Tipos enumerados

LimitExceededBehavior

A enumeração LimitExceededBehavior permite configurar o comportamento quando os limites de controle de fluxo são excedidos.

Tipos enumerados
BLOCK O publisher do Pub/Sub será bloqueado quando os limites forem excedidos. Isso impede a publicação de mais mensagens até que os recursos fiquem disponíveis.
IGNORE O editor do Pub/Sub ignora os limites e continua publicando quando eles são 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.