Configurazione di Pub/Sub

Puoi configurare la formattazione di pubblicazione Pub/Sub del transcoder Mainframe Connector aggiungendo la configurazione richiesta in un file JSON e specificando questo file utilizzando l'opzione --input-parameter pubsub-publish-configuration=DataPath con il comando qsam decode. Devi definire la configurazione di pubblicazione Pub/Sub come specificato nella sezione PubsubConfiguration.

Questa pagina descrive i vari parametri Pub/Sub che puoi configurare come parametri di input per la transcodifica. L'oggetto PubsubPublishConfiguration contiene tutte le opzioni di configurazione del decodificatore Pub/Sub.

PubsubPublishConfiguration

L'oggetto PubsubPublishConfiguration ti consente di configurare i messaggi inviati a Pub/Sub e viene utilizzato con il comando qsam decode.

Rappresentazione 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)
}
Campi
attributes_configuration

object (AttributesConfiguration)

Specifica la configurazione degli attributi. Puoi specificare la configurazione come coppie chiave-valore che possono essere allegate a un messaggio Pub/Sub. La configurazione può essere utilizzata per filtrare i messaggi o per trasmettere metadati aggiuntivi.

ordering_key_configuration

object (OrderingKeyConfiguration)

Specifica la configurazione della chiave di ordinamento. Questa configurazione verifica che i messaggi con la stessa chiave di ordinamento vengano recapitati in ordine. Se non imposti questa configurazione, l'ordine dei messaggi non è garantito.

spillover_configuration

object (SpilloverConfiguration)

Specifica la configurazione per l'invio dei messaggi di overflow. Se non è impostato, i messaggi di overflow vengono inviati all'argomento di input con un suffisso _spillover.
Ad esempio, se l'argomento di input è projects/project_example/topics/topic_example, l'argomento di overflow predefinito sarà projects/project_example/topics/topic_example_spillover.

batching_settings

object (BatchingSettings)

Specifica le impostazioni batch per la pubblicazione dei messaggi. Per impostazione predefinita, l'elaborazione batch è disattivata. Per ulteriori informazioni, vedi Pubblicazione con impostazioni batch.

flow_control_settings

object (FlowControlSettings)

Specifica le impostazioni di controllo del flusso da utilizzare per la pubblicazione dei messaggi. Per impostazione predefinita, le impostazioni di controllo del flusso sono disattivate. Per ulteriori informazioni, vedi Pubblicare messaggi con le impostazioni di controllo del flusso.

concurrency_control_settings

object (ConcurrencyControlSettings)

Specifica le impostazioni di concorrenza ed elaborazione dei messaggi per il client publisher. Queste impostazioni controllano il parallelismo per la pubblicazione dei messaggi, l'acknowledgment delle pubblicazioni riuscite e la gestione di eventuali errori durante la procedura di pubblicazione. Per ulteriori informazioni, consulta Controllo della concorrenza.

AttributesConfiguration

Il messaggio AttributesConfiguration specifica un insieme fisso di attributi che definiscono la modalità di recupero degli attributi per i messaggi Pub/Sub.

Rappresentazione JSON
{
    "attributes": object (Attributes)
}
Campi
attributes

object (Attributes)

Una raccolta di attributi chiave/valore fissi da associare ai messaggi Pub/Sub.

OrderingKeyConfiguration

Il messaggio OrderingKeyConfiguration specifica una stringa statica come chiave di ordinamento che definisce come viene determinata la chiave di ordinamento per i messaggi Pub/Sub.

Rappresentazione JSON
{
    "key": string
}
Campi
key

string

Il valore di stringa da utilizzare come chiave di ordinamento per il messaggio Pub/Sub.

SpilloverConfiguration

Il messaggio SpilloverConfiguration definisce come specificare un argomento alternativo per i messaggi di overflow. Puoi specificare un nome argomento completo o un suffisso da aggiungere al nome argomento inserito. Queste due opzioni si escludono a vicenda; devi sceglierne una.

Rappresentazione JSON
{
    "name": string,
    "suffix": string
}
Campi
name

string

Specifica il nome completo della risorsa di un argomento alternativo per i messaggi di overflow nel formato projects/{project}/topics/{topic}.

suffix

string

Specifica un suffisso da aggiungere al nome dell'argomento inserito per i messaggi di overflow. Ad esempio, se l'argomento di input è projects/project_example/topics/my-topic e il suffisso è _errors, l'argomento di overflow sarà projects/project_example/topics/my-topic_errors.

BatchingSettings

Il messaggio BatchingSettings ti consente di specificare le impostazioni batch per la pubblicazione dei messaggi in Pub/Sub. Devi verificare che le impostazioni batch siano configurate in modo da rispettare le quote e i limiti di Pub/Sub definiti. Per disattivare l'elaborazione batch, imposta message_count_threshold=1.

Rappresentazione JSON
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
Campi
delay_threshold

string

Specifica la soglia di ritardo da utilizzare per l'elaborazione batch. Una volta trascorso il periodo di tempo definito da delay_threshold (contando dal primo messaggio aggiunto), i messaggi vengono raggruppati in un batch e inviati. Ti consigliamo di non impostare questo valore troppo alto, altrimenti le chiamate potrebbero non essere mai completate. Se dai la priorità all'elaborazione in tempo reale o quasi in tempo reale, ti consigliamo di impostare una soglia di ritardo più bassa (poche decine o centinaia di millisecondi). In questo modo, verifichi che i messaggi vengano inviati rapidamente. Se hai a che fare con l'elaborazione batch su larga scala in cui l'invio immediato non è fondamentale, potrebbe essere accettabile una soglia più alta (alcuni secondi) per consentire batch più grandi ed efficienti. Per ulteriori informazioni sul formato della durata, consulta Duration. Se viene fornita una soglia di ritardo di 0 secondi, è come se non fosse stata fornita una soglia di ritardo e viene utilizzata quella predefinita. Il valore predefinito è 1 ms.

element_count_threshold

long

Specifica la soglia di conteggio dei messaggi da utilizzare per l'elaborazione collettiva. Una volta accumulato il numero di messaggi definito da message_count_threshold, questi vengono raggruppati in un batch e inviati, anche se la soglia di ritardo non è ancora trascorsa. Se i tuoi messaggi sono costantemente di piccole dimensioni, ti consigliamo di aumentare la soglia di conteggio dei messaggi. Il valore predefinito è 1.

request_byte_threshold

long

Specifica le dimensioni massime in byte dei messaggi da accumulare prima di inviare un batch a Pub/Sub. Ciò vale anche se non sono state ancora superate le soglie di ritardo o di numero di messaggi. Se i tuoi messaggi sono costantemente piccoli, ti consigliamo di aumentare la soglia in byte. Il valore predefinito è 1 byte.

FlowControlSettings

Il messaggio FlowControlSettings ti consente di specificare in che modo il client publisher gestisce il flusso di messaggi in Pub/Sub. Queste impostazioni impediscono al client di consumare risorse eccessive o di sovraccaricare Pub/Sub.

Rappresentazione JSON
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
Campi
limit_exceeded_behavior

enum (LimitExceededBehavior)

Specifica il comportamento quando vengono superati i limiti di controllo del flusso. Il valore predefinito è BLOCK.

max_outstanding_element_count

long

Specifica il numero massimo di messaggi in attesa (inviati, ma non ancora confermati da Pub/Sub). Se il tuo mainframe ha memoria abbondante e vuoi aumentare molto la velocità effettiva, puoi provare ad aumentare il conteggio.

max_outstanding_request_bytes

long

Specifica la dimensione totale massima in byte dei messaggi in attesa.

ConcurrencyControlSettings

Il messaggio ConcurrencyControlSettings ti consente di configurare il parallelismo della pubblicazione dei messaggi. Queste impostazioni influiscono sul numero di messaggi che possono essere inviati contemporaneamente.

Rappresentazione JSON
{
    "publishing_threads": int,
    "result_processing_threads": int
}
Campi
publishing_threads

int

Specifica il numero di thread di elaborazione per pubblicare i messaggi. Il valore deve essere uguale o inferiore al numero di core disponibili. Se il numero di thread è 0, la pubblicazione viene gestita in modo sincrono.

result_processing_threads

int

Specifica il numero di thread per l'elaborazione dei risultati dei messaggi Pub/Sub. Sono inclusi il riconoscimento dei messaggi inviati correttamente e la gestione degli errori che si verificano durante la pubblicazione. Un valore pari a 0 indica che il parallelismo di elaborazione dei risultati viene gestito in modo sincrono. Il valore predefinito è 1.

Attributi

Il messaggio Attributes specifica una raccolta di coppie chiave-valore Attribute che definiscono la modalità di determinazione degli attributi.

Rappresentazione JSON
{
    "attribute": object (Attribute)
}
Campi
attribute

object (Attribute)

Specifica una raccolta di coppie chiave/valore.

Attributo

Il messaggio Attribute rappresenta una singola coppia chiave-valore utilizzata come attributo del messaggio Pub/Sub.

Rappresentazione JSON
{
    "key": string,
    "value": string
}
Campi
key

string

Specifica la chiave dell'attributo.

value

string

Specifica il valore dell'attributo.

LimitExceededBehavior

L'enum LimitExceededBehavior consente di configurare il comportamento quando i limiti di controllo del flusso vengono superati.

Enum
BLOCK Il publisher Pub/Sub verrà bloccato quando i limiti vengono superati. In questo modo, non vengono pubblicati altri messaggi finché le risorse non diventano disponibili.
IGNORE Il publisher Pub/Sub ignorerà i limiti e continuerà a pubblicare quando vengono superati. Ciò potrebbe comportare un aumento del consumo di risorse.
THROW_EXCEPTION Il publisher Pub/Sub genera un'eccezione quando vengono superati i limiti, indicando un errore di pubblicazione.