Configuration Pub/Sub

Vous pouvez configurer le format de publication Pub/Sub du transcodeur Mainframe Connector en ajoutant la configuration requise dans un fichier JSON et 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 en tant que 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),
    "batching_settings": object (BatchingSettings),
    "concurrency_control_settings": object (ConcurrencyControlSettings),
    "flow_control_settings": object (FlowControlSettings),
    "ordering_key_configuration": object (OrderingKeyConfiguration),
    "spillover_configuration": object (SpilloverConfiguration)
}
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.

batching_settings

object (BatchingSettings)

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

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 de messages, l'accusé de réception des messages remis et la gestion des erreurs lors du processus de publication. Pour en savoir plus, consultez Contrôle de simultanéité.

flow_control_settings

object (FlowControlSettings)

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

ordering_key_configuration

object (OrderingKeyConfiguration)

Spécifiez la configuration de la clé de tri. Cette configuration permet de vérifier 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 pour l'envoi des messages de dépassement. Si cette valeur n'est pas définie, les messages excédentaires 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.

AttributesConfiguration

Le message AttributesConfiguration spécifie un ensemble fixe d'attributs qui définissent la manière dont les attributs sont obtenus 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.

Attributs

Le message Attributes spécifie une collection de paires clé/valeur Attribute qui définissent la façon 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.

BatchingSettings

Le message BatchingSettings vous permet de spécifier les paramètres de lot pour la publication de messages dans Pub/Sub. Vous devez vérifier que vos paramètres de traitement par lot sont configurés de manière à 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 sur une valeur trop élevée, car les appels pourraient ne jamais se terminer. Si vous privilégiez le traitement en temps réel ou quasi en temps réel, vous aurez besoin d'un seuil de retard 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 livraison 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 délai de 0 seconde est fourni, il est considéré comme si aucun seuil de délai n'avait été 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 le nombre de messages défini par message_count_threshold atteint, 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 petits, envisagez d'augmenter le seuil du 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. Cela 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 régulièrement petits, envisagez d'augmenter le seuil d'octets. La valeur par défaut est de 1 octet.

ConcurrencyControlSettings

Le message ConcurrencyControlSettings vous permet de configurer le parallélisme de la publication des messages. Ces paramètres influencent le nombre de messages qui peuvent ê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 les messages. La valeur doit être inférieure ou égale au nombre de cœurs disponibles. Si le nombre de threads est égal à 0, 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 l'accusé de réception des messages envoyés et la gestion des erreurs qui se produisent lors de la publication. Une valeur de 0 signifie que le parallélisme du traitement des résultats est géré de manière synchrone. La valeur par défaut est de 1.

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 trop de ressources 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 à adopter 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 grande quantité de mémoire et que vous souhaitez atteindre 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.

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 thème pour les messages de débordement. Vous pouvez spécifier un nom de thème complet ou un suffixe à ajouter au nom du thème d'entrée. 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 complet d'une autre rubrique 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 thème d'entrée est projects/project_example/topics/my-topic et que le suffixe est _errors, le thème de débordement sera projects/project_example/topics/my-topic_errors.

Enums

LimitExceededBehavior

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

Enums
BLOCK Le diffuseur Pub/Sub se bloque lorsque les limites sont dépassées. Cela empêche la publication d'autres messages jusqu'à ce que des ressources soient disponibles.
IGNORE L'éditeur Pub/Sub ignore les limites et continue de publier lorsque celles-ci sont dépassées. 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 publication.