Configuration Pub/Sub

Vous pouvez configurer la mise en forme de publication Pub/Sub du transcodeur Mainframe Connector en ajoutant la configuration requise dans un fichier JSON, puis en spécifiant ce fichier à l'aide de l'option --input-parameter pubsub-publish-configuration=DataPath avec la commande qsam decode. Vous devez définir la configuration de publication Pub/Sub comme indiqué dans la section PubsubConfiguration.

Cette page décrit les différents paramètres Pub/Sub que vous pouvez configurer comme paramètres d'entrée pour le transcodage. L'objet PubsubPublishConfiguration contient toutes les options de configuration du décodeur Pub/Sub.

PubsubPublishConfiguration

L'objet PubsubPublishConfiguration vous permet de configurer les messages envoyés à Pub/Sub et est utilisé avec la commande qsam decode.

Représentation 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)
}
Champs
attributes_configuration

object (AttributesConfiguration)

Spécifiez la configuration des attributs. Vous pouvez spécifier la configuration sous forme de paires clé-valeur pouvant être associées à un message Pub/Sub. La configuration peut ensuite être utilisée pour filtrer les messages ou pour transmettre des métadonnées supplémentaires.

ordering_key_configuration

object (OrderingKeyConfiguration)

Spécifiez la configuration de la clé de tri. Cette configuration vérifie que les messages ayant la même clé de tri sont distribués dans l'ordre. Si vous ne définissez pas cette configuration, l'ordre des messages n'est pas garanti.

spillover_configuration

object (SpilloverConfiguration)

Spécifiez la configuration de l'envoi des messages de débordement. Si cette valeur n'est pas définie, les messages de débordement sont envoyés au sujet d'entrée avec un suffixe _spillover.
Par exemple, si le sujet d'entrée est projects/project_example/topics/topic_example, le sujet de débordement par défaut est projects/project_example/topics/topic_example_spillover.

batching_settings

object (BatchingSettings)

Spécifiez les paramètres de traitement par lots pour publier des messages. Par défaut, le traitement par lot est désactivé. Pour en savoir plus, consultez Publier avec des paramètres de lot.

flow_control_settings

object (FlowControlSettings)

Spécifiez les paramètres de contrôle de flux à utiliser pour publier des messages. Par défaut, les paramètres de contrôle de flux sont désactivés. Pour en savoir plus, consultez la section Publier des messages avec des paramètres de contrôle de flux.

concurrency_control_settings

object (ConcurrencyControlSettings)

Spécifiez les paramètres de traitement des messages et de simultanéité pour le client éditeur. Ces paramètres contrôlent le parallélisme pour la publication des messages, la confirmation des diffusions réussies et la gestion des erreurs lors du processus de publication. Pour en savoir plus, consultez la section Contrôle de la simultanéité.

AttributesConfiguration

Le message AttributesConfiguration spécifie un ensemble fixe d'attributs qui définissent la manière dont les attributs sont collectés pour les messages Pub/Sub.

Représentation JSON
{
    "attributes": object (Attributes)
}
Champs
attributes

object (Attributes)

Collection d'attributs clé-valeur fixes à associer aux messages Pub/Sub.

OrderingKeyConfiguration

Le message OrderingKeyConfiguration spécifie une chaîne statique comme clé de tri qui définit la façon dont la clé de tri des messages Pub/Sub est déterminée.

Représentation JSON
{
    "key": string
}
Champs
key

string

Valeur de chaîne à utiliser comme clé de tri pour le message Pub/Sub.

SpilloverConfiguration

Le message SpilloverConfiguration définit comment spécifier un autre sujet pour les messages de débordement. Vous pouvez spécifier un nom de thème complet ou un suffixe à ajouter au nom de thème saisi. Ces deux options s'excluent mutuellement. Vous devez en choisir une.

Représentation JSON
{
    "name": string,
    "suffix": string
}
Champs
name

string

Spécifiez le nom de ressource complet d'un autre sujet pour les messages de débordement au format projects/{project}/topics/{topic}.

suffix

string

Spécifiez un suffixe à ajouter au nom du thème d'entrée pour les messages de débordement. Par exemple, si le sujet d'entrée est projects/project_example/topics/my-topic et que le suffixe est _errors, le sujet de débordement est projects/project_example/topics/my-topic_errors.

BatchingSettings

Le message BatchingSettings vous permet de spécifier les paramètres de lot pour publier des messages dans Pub/Sub. Vous devez vérifier que vos paramètres de lot sont configurés pour respecter les quotas et limites Pub/Sub définis. Pour désactiver le traitement par lot, définissez message_count_threshold=1.

Représentation JSON
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
Champs
delay_threshold

string

Spécifiez le seuil de délai à utiliser pour le traitement par lot. Une fois le délai défini par delay_threshold écoulé (à compter du premier message ajouté), les messages sont regroupés dans un lot et envoyés. Nous vous recommandons de ne pas définir cette valeur trop haut, sinon les appels peuvent sembler ne jamais aboutir. Si vous priorisez le traitement en temps réel ou quasi réel, vous devez définir un seuil de latence plus faible (quelques dizaines ou centaines de millisecondes). Cela permet de vérifier que les messages sont envoyés rapidement. Si vous effectuez un traitement par lot à grande échelle où la diffusion immédiate n'est pas essentielle, un seuil plus élevé (quelques secondes) peut être acceptable pour permettre des lots plus importants et plus efficaces. Pour en savoir plus sur le format de durée, consultez Duration. Si un seuil de retard de 0 seconde est fourni, il est considéré comme si aucun seuil de retard n'était fourni, et la valeur par défaut est utilisée. La valeur par défaut est de 1 ms.

element_count_threshold

long

Spécifiez le seuil de nombre de messages à utiliser pour le traitement par lot. Une fois que le nombre de messages définis par message_count_threshold est cumulé, ils sont regroupés dans un lot et envoyés, même si le seuil de délai n'est pas encore écoulé. Si vos messages sont régulièrement courts, envisagez d'augmenter le seuil de nombre de messages. La valeur par défaut est de 1.

request_byte_threshold

long

Spécifiez la taille maximale, en octets, des messages à accumuler avant d'envoyer un lot à Pub/Sub. Cette règle s'applique même si les seuils de délai ou de nombre de messages n'ont pas encore été dépassés. Si vos messages sont toujours de petite taille, envisagez d'augmenter le seuil d'octets. La valeur par défaut est de 1 octet.

FlowControlSettings

Le message FlowControlSettings vous permet de spécifier comment le client éditeur gère le flux de messages vers Pub/Sub. Ces paramètres empêchent le client de consommer des ressources excessives ou de surcharger Pub/Sub.

Représentation JSON
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
Champs
limit_exceeded_behavior

enum (LimitExceededBehavior)

Spécifiez le comportement lorsque les limites de contrôle de flux sont dépassées. La valeur par défaut est BLOCK.

max_outstanding_element_count

long

Spécifiez le nombre maximal de messages pouvant être en attente (envoyés, mais pas encore confirmés par Pub/Sub). Si votre mainframe dispose d'une mémoire abondante et que vous souhaitez obtenir un débit très élevé, vous pouvez essayer d'augmenter le nombre.

max_outstanding_request_bytes

long

Spécifie la taille totale maximale, en octets, des messages en attente.

ConcurrencyControlSettings

Le message ConcurrencyControlSettings vous permet de configurer le parallélisme de la publication des messages. Ces paramètres déterminent le nombre de messages pouvant être envoyés simultanément.

Représentation JSON
{
    "publishing_threads": int,
    "result_processing_threads": int
}
Champs
publishing_threads

int

Spécifiez le nombre de threads de traitement pour publier des messages. La valeur doit être égale ou inférieure au nombre de cœurs disponibles. Si le nombre de threads est nul, la publication est gérée de manière synchrone.

result_processing_threads

int

Spécifiez le nombre de threads pour traiter les résultats des messages Pub/Sub. Cela inclut la confirmation des messages envoyés avec succès et la gestion des erreurs qui se produisent lors de la publication. Une valeur de 0 signifie que le parallélisme de traitement des résultats est géré de manière synchrone. La valeur par défaut est de 1.

Attributs

Le message Attributes spécifie une collection de paires clé-valeur Attribute qui définissent la manière dont les attributs sont déterminés.

Représentation JSON
{
    "attribute": object (Attribute)
}
Champs
attribute

object (Attribute)

Spécifiez une collection de paires clé-valeur.

Attribut

Le message Attribute représente une seule paire clé-valeur utilisée comme attribut de message Pub/Sub.

Représentation JSON
{
    "key": string,
    "value": string
}
Champs
key

string

Spécifiez la clé de l'attribut.

value

string

Spécifiez la valeur de l'attribut.

LimitExceededBehavior

L'énumération LimitExceededBehavior vous permet de configurer le comportement lorsque les limites de contrôle de flux sont dépassées.

Énumérations
BLOCK L'éditeur Pub/Sub bloque les messages lorsque les limites sont dépassées. Cela empêche la publication de nouveaux messages jusqu'à ce que des ressources soient disponibles.
IGNORE L'éditeur Pub/Sub ignore les limites et continue de publier des messages lorsqu'il les dépasse. Cela peut entraîner une augmentation de la consommation de ressources.
THROW_EXCEPTION L'éditeur Pub/Sub génère une exception lorsque les limites sont dépassées, ce qui indique un échec de la publication.