Configurazione di Pub/Sub

Puoi configurare la formattazione della pubblicazione Pub/Sub del transcodificatore 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 consente di configurare i messaggi inviati a Pub/Sub e viene utilizzato con il comando qsam decode.

Rappresentazione 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)
}
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ò quindi essere utilizzata per il filtraggio dei messaggi o per trasmettere metadati aggiuntivi.

batching_settings

object (BatchingSettings)

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

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, la conferma delle consegne riuscite e la gestione di eventuali errori durante il processo di pubblicazione. Per saperne di più, consulta Controllo della concorrenza.

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 saperne di più, vedi Pubblicazione di messaggi con le impostazioni di controllo del flusso.

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 la modalità di invio dei messaggi di overflow. Se non è impostato, i messaggi di overflow vengono inviati all'argomento di input con il 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.

AttributesConfiguration

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

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

object (Attributes)

Una raccolta di attributi coppia chiave-valore fissi da allegare ai messaggi Pub/Sub.

Attributi

Il messaggio Attributes specifica una raccolta di coppie chiave-valore Attribute che definiscono come vengono determinati gli 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.

BatchingSettings

Il messaggio BatchingSettings ti consente di specificare le impostazioni batch per la pubblicazione di messaggi su 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. Trascorso il periodo di tempo definito da delay_threshold (a partire 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, ti consigliamo una soglia di ritardo inferiore (qualche decina o centinaia di millisecondi). In questo modo, i messaggi vengono inviati rapidamente. Se hai a che fare con l'elaborazione batch su larga scala in cui la pubblicazione immediata non è fondamentale, una soglia più alta (qualche secondo) potrebbe essere accettabile per consentire batch più grandi ed efficienti. Per saperne di più sul formato della durata, vedi Duration. Se viene fornita una soglia di ritardo di 0 secondi, è come se non fosse stata fornita alcuna soglia di ritardo e viene utilizzata quella predefinita. Il valore predefinito è 1 ms.

element_count_threshold

long

Specifica la soglia del conteggio dei messaggi da utilizzare per l'elaborazione batch. 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 piccoli, valuta la possibilità di aumentare la soglia del 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 ancora state superate le soglie di ritardo o di conteggio dei messaggi. Se i messaggi sono costantemente piccoli, valuta la possibilità di aumentare la soglia di byte. Il valore predefinito è 1 byte.

ConcurrencyControlSettings

Il messaggio ConcurrencyControlSettings 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. Ciò include la conferma dei messaggi inviati correttamente e la gestione di eventuali 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.

FlowControlSettings

Il messaggio FlowControlSettings ti consente di specificare in che modo il client publisher gestisce il flusso di messaggi a 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 che possono essere in sospeso (inviati ma non ancora confermati da Pub/Sub). Se il tuo mainframe ha molta memoria e vuoi ottenere un throughput elevato, puoi provare ad aumentare il conteggio.

max_outstanding_request_bytes

long

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

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 della 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 dell'argomento completo o un suffisso da aggiungere al nome dell'argomento di input. Queste due opzioni si escludono a vicenda, quindi 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 di input 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.

Enum

LimitExceededBehavior

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

Enum
BLOCK Il publisher Pub/Sub si bloccherà quando i limiti vengono superati. In questo modo si impedisce la pubblicazione di ulteriori messaggi fino a quando le risorse non saranno 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 genererà un'eccezione quando vengono superati i limiti, indicando un errore di pubblicazione.