Configuração do Pub/Sub

Pode configurar a formatação de publicação do Pub/Sub do transcodificador do mainframe adicionando a configuração necessária num ficheiro JSON e especificando este ficheiro através da opção --input-parameter pubsub-publish-configuration=DataPath com o comando qsam decode. Tem de definir a configuração de publicação do Pub/Sub conforme especificado na secção PubsubConfiguration.

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

PubsubPublishConfiguration

O objeto PubsubPublishConfiguration permite-lhe configurar as mensagens que são enviadas para o 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. Pode especificar a configuração como pares de chave-valor que podem ser anexados a uma mensagem do Pub/Sub. Em seguida, a configuração pode ser usada para a filtragem de mensagens ou para transmitir metadados adicionais.

ordering_key_configuration

object (OrderingKeyConfiguration)

Especifique a configuração da chave de ordenação. Esta configuração verifica se as mensagens com a mesma chave de ordenação são entregues por ordem. Se não definir esta configuração, a ordem das mensagens não é garantida.

spillover_configuration

object (SpilloverConfiguration)

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

batching_settings

object (BatchingSettings)

Especifique as definições de lote para publicar mensagens. Por predefinição, o processamento em lote está desativado. Para mais informações, consulte o artigo Publique com definições em lote.

flow_control_settings

object (FlowControlSettings)

Especifique as definições de controlo de fluxo a usar para publicar mensagens. Por predefinição, as definições de controlo de fluxo estão desativadas. Para mais informações, consulte o artigo Publique mensagens com definições de controlo de fluxo.

concurrency_control_settings

object (ConcurrencyControlSettings)

Especifique as definições de processamento de mensagens e simultaneidade para o cliente publicador. Estas definições controlam o paralelismo para publicar mensagens, confirmar entregas bem-sucedidas e processar erros durante o processo de publicação. Para mais informações, consulte o artigo Controlo de concorrência.

AttributesConfiguration

A mensagem AttributesConfiguration especifica um conjunto fixo de atributos que definem como os atributos são obtidos 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 anexar à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 para mensagens do Pub/Sub é determinada.

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

string

O valor de string a usar como chave de ordenação para a mensagem do Pub/Sub.

SpilloverConfiguration

A mensagem SpilloverConfiguration define como especificar um tópico alternativo para mensagens de transbordo. Pode especificar um nome de tópico completo ou um sufixo a anexar ao nome do tópico de entrada. Estas duas opções são mutuamente exclusivas. Tem de 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 transbordo no formato projects/{project}/topics/{topic}.

suffix

string

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

BatchingSettings

A mensagem BatchingSettings permite-lhe especificar as definições de lote para publicar mensagens no Pub/Sub. Deve verificar se as definições de lotes estão configuradas para respeitar as quotas e os 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 usar para o processamento em lote. Após o período definido por delay_threshold (a contar da primeira mensagem adicionada), as mensagens são agrupadas num lote e enviadas. Recomendamos que não defina este valor demasiado alto. Caso contrário, as chamadas podem parecer nunca ser concluídas. Se der prioridade ao processamento em tempo real ou quase em tempo real, é recomendável usar um limite de atraso mais baixo (algumas dezenas ou centenas de milissegundos). Isto valida que as mensagens são enviadas rapidamente. Se estiver a lidar com o processamento em lote em grande escala em que a entrega imediata não é fundamental, um limite mais elevado (alguns segundos) pode ser aceitável para permitir lotes maiores e mais eficientes. Para mais informações sobre o formato de duração, consulte o artigo Duration. Se for fornecido um limite de atraso de 0 segundos, é considerado como se não tivesse sido fornecido um limite de atraso, e é usado o valor predefinido. O valor predefinido é de 1 ms.

element_count_threshold

long

Especifique o limite de contagem de mensagens a usar para o processamento em lote. Depois de acumular o número de mensagens definido por message_count_threshold, estas são agrupadas num lote e enviadas, mesmo que o limite de tempo de atraso ainda não tenha decorrido. Se as suas mensagens forem sempre pequenas, considere aumentar o limite de contagem de mensagens. O valor predefinido é 1.

request_byte_threshold

long

Especifique o tamanho máximo em bytes das mensagens a acumular antes de enviar um lote para o Pub/Sub. Isto aplica-se mesmo que ainda não tenha excedido os limites de atraso ou de número de mensagens. Se as suas mensagens forem sempre pequenas, considere aumentar o limite de bytes. O valor predefinido é 1 byte.

FlowControlSettings

A mensagem FlowControlSettings permite-lhe especificar como o cliente publicador gere o fluxo de mensagens para o Pub/Sub. Estas definiçõ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 controlo de fluxo são excedidos. O valor predefinido é 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 quiser enviar um débito muito elevado, pode tentar aumentar a contagem.

max_outstanding_request_bytes

long

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

ConcurrencyControlSettings

A mensagem ConcurrencyControlSettings permite-lhe configurar o paralelismo da publicação de mensagens. Estas definições influenciam o número de mensagens que podem ser enviadas em simultâneo.

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

int

Especifique o número de threads de processamento para publicar mensagens. O valor deve ser igual ou inferior ao número de núcleos disponíveis. Se o número de threads for 0, a publicação é processada de forma síncrona.

result_processing_threads

int

Especifique o número de threads para o processamento dos resultados das mensagens do Pub/Sub. Isto inclui a confirmação de mensagens enviadas com êxito e o processamento de erros que ocorram durante a publicação. Um valor de 0 significa que o paralelismo do processamento de resultados é processado de forma síncrona. O valor predefinido é 1.

Atributos

A mensagem Attributes especifica uma coleção de pares de valor-chave 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

A enumeração LimitExceededBehavior permite-lhe configurar o comportamento quando os limites do controlo de fluxo são excedidos.

Enumerações
BLOCK O publicador do Pub/Sub bloqueia quando os limites são excedidos. Isto impede a publicação de mais mensagens até que os recursos fiquem disponíveis.
IGNORE O publicador do Pub/Sub ignora os limites e continua a publicar quando estes são excedidos. Isto pode levar a um aumento do consumo de recursos.
THROW_EXCEPTION O publicador do Pub/Sub gera uma exceção quando os limites são excedidos, o que indica uma falha na publicação.