Identifier le service de messagerie le plus approprié

Découvrez les considérations relatives à la sélection d'un service de messagerie, puis utilisez le tableau de matrice de décision pour examiner les différentes options et limites des services OCI en fonction des besoins de votre entreprise.

Remarques concernant la sélection d'un service de messagerie

Prenez en compte les facteurs d'évaluation suivants pour prendre votre décision.

Chorégraphie ou orchestration

La chorégraphie et l'orchestration sont deux approches architecturales de la façon dont différents composants découplés sont organisés pour fonctionner ensemble. La chorégraphie adopte le principe selon lequel chaque composant fonctionne indépendamment, mais écoute et surveille les signaux pour savoir quand effectuer leur action suivante. Un courtier de messages transmet les signaux au composant suivant. Les composants peuvent être très autonomes et faciles à faire évoluer. L'inconvénient est que chaque composant nécessite une meilleure compréhension de son rôle dans la solution globale et ajoute une plus grande complexité. Un gestionnaire de messages est un élément essentiel. Sa simplicité réduit la charge de travail et permet un meilleur débit.

L'orchestration fait référence à l'idée de composants assemblés comme un orchestre. Chaque composant doit uniquement connaître sa tâche, puis attendre que le conducteur ou l'orchestrateur les invite à effectuer l'action. Ainsi, le conducteur doit comprendre et avoir l'intelligence de diriger tous les composants. Le rôle de conducteur est essentiel et sa résilience et sa capacité à évoluer, influence directement l'évolutivité et la résilience de la solution globale.

Certains produits d'orchestration permettent de chorégraphier (comme l'inclusion d'un courtier) ou de créer des services qui utilisent des composants pour obtenir l'effet de la communication par courtage.

Paiement par message ou événements par rapport à. Achat en masse

Examinez les différents modèles de paiement en fonction de l'impact sur les coûts de votre solution. Vous pouvez choisir de payer par message si un volume de messages potentiellement inutilisé provient d'un achat en masse. Considérons que le paiement par message ou événement peut coûter plus cher en volume, car le coût d'empreinte minimum d'un service doit être réparti sur moins d'utilisations.

Consommateurs de messages uniques ou multiples

La différence entre une file d'attente et un sujet est qu'un message ne peut être consommé qu'une seule fois avec une file d'attente. Un sujet peut avoir plusieurs consommateurs différents. Les files d'attente et les rubriques peuvent avoir de nombreuses instances d'un type de consommateur. Plusieurs instances du même type de consommateur connectées à un seul sujet ou une seule file d'attente sont souvent décrites comme une condition de course où le prochain consommateur disponible prend le prochain message disponible.

Conservation des messages après lecture

Certains courtiers en messages supprimeront un message une fois lus (ou une fois que tous les consommateurs auront lu le message) pour gérer les ressources. Apache Kafka suit jusqu'à quel point un consommateur a parcouru les messages, mais ne les supprime pas une fois lus. Cela permet de réexécuter les messages en cas de problème. Par conséquent, Kafka agit en tant que banque de données ainsi qu'en tant que courtier de messages et prend en charge la création d'analyses de données sur la banque de données de message.

Commande garantie

La garantie que les messages sont livrés dans l'ordre dans lequel ils sont reçus, plutôt que dans l'ordre dans lequel ils sont stockés, entraîne une complexité et une incidence sur les performances. Des problèmes de latence peuvent être introduits lors de l'utilisation d'un broker, car ils peuvent attendre avant de permettre aux consommateurs d'obtenir un message pour s'assurer qu'aucun message retardé ne doit être inséré dans le bon ordre avant d'être consommé.

Par exemple, l'ordre des messages est essentiel pour les événements représentant une commande en cours d'annulation. Le message de création de commande peut entraîner des problèmes d'application si les messages ne suivent pas l'ordre.

Il existe des modèles et des stratégies de niveau application qui peuvent aider à limiter les problèmes de commande et à compenser les contraintes du courtier.

Opération asynchrone

L'avantage d'utiliser un mécanisme de broker est que le fournisseur de messages n'a pas besoin de connaître le consommateur et ne ralentit pas le fournisseur. Le courtier sait qui est le consommateur, qu'il soit disponible ou non, et gère la transmission en cas de problème avec le consommateur (comme les performances). L'utilisation du courtier permet une communication asynchrone et le fournisseur et le consommateur n'ont pas besoin d'être synchronisés.

Taux maximal de messages, période de conservation des messages et volume de conservation maximal

Ces facteurs sont tous des influenceurs sur le coût de la fourniture d'une solution sans serveur et nécessiteront souvent la fixation de limites strictes. Les logiciels ne fournissent pas toujours des performances uniformes au fur et à mesure de l'évolution des attentes. Vous pouvez définir des limites pour contrôler les attentes et fournir des comportements prévisibles. Vous devez comprendre ces limites pour déterminer si elles peuvent avoir un impact sur la solution que vous créez.

Par exemple, un système de négociation d'actions recevra des messages lorsque les cours d'actions changent. Chaque message sera petit, mais le volume des messages sera élevé en raison de la fréquence élevée des mises à jour. Un courtier dont le débit est faible mais dont la taille de message est importante ne peut pas prendre en charge cette exigence.

Support d'entrée standard du secteur et support de sortie standard du secteur

L'utilisation de formats et de protocoles standard pour envoyer et recevoir des messages augmente la capacité du mécanisme de messagerie à être reconfiguré et utilisé avec différents déploiements et fournisseurs d'implémentation. Vous pouvez tirer parti des bibliothèques communes pour gérer les mécanismes de communication de bas niveau et réduire le lien avec les fournisseurs.

Prise en charge des adaptateurs tiers

Pour aider à développer les fournisseurs de messages et les consommateurs, le soutien via des adaptateurs tiers peut être avantageux car il augmente les options de développement.

Déploiements individuels par compartiment

Vous pouvez déployer des canaux ou des flux de messages individuels vers des compartiments spécifiques et permettre aux services d'une solution de disposer de contrôles de sécurité précis et collectifs via une surface de contrôle commune. Cette approche suppose que tous les éléments peuvent être contrôlés au niveau du compartiment. Les solutions qui ne peuvent pas accueillir de contrôles au niveau du compartiment par canal peuvent offrir des alternatives. D'autres approches peuvent nécessiter des considérations de configuration supplémentaires.

Utilisation de l'authentification OCI IAM

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) offre un niveau de sécurité robuste de niveau entreprise dans les cas où la sécurité peut être fédérée avec d'autres fournisseurs. L'utilisation d'un seul fournisseur IAM (avec ou sans fédération) facilite le contrôle de sécurité de l'accès au flux de données.

Les données sont cryptées en vol et au repos

Si les données passant par le service sont sensibles, elles doivent être protégées à la fois pendant la transmission et pendant leur conservation par le courtier jusqu'à leur livraison. Les messages sensibles doivent être chiffrés par le mécanisme de chiffrement du courtier pour garantir qu'ils ne sont pas perdus.

Transformation de message

Selon les principes architecturaux adoptés, le courtier peut avoir besoin d'avoir la possibilité de traduire le formatage des messages. Le fournisseur de messages ou les consommateurs n'ont pas besoin de comprendre la sémantique commune des données ni de savoir comment le fournisseur ou les consommateurs veulent que les données soient formatées. Cette considération peut également s'étendre aux modifications apportées aux protocoles utilisés. Par exemple, conversion de REST en STOMP.

Trace d'audit

Pour résoudre les problèmes liés aux applications distribuées, une piste d'audit permet de suivre l'endroit où un message a été transmis et reçu. Avoir une piste d'audit peut être utile lorsque vous devez respecter les exigences légales. Par conséquent, il peut être nécessaire d'apprendre comment le service peut répondre à cette exigence.

Vérifier la matrice de décision

Utilisez la matrice de décision suivante pour en savoir plus sur les choix disponibles des services OCI et sur les considérations ou les facteurs d'évaluation pour choisir un service particulier.

Service/Facteur File Transmission en continu Notifications Oracle Integration (Gen2, Gen3) Autonomous Database (TEQ et AQ)
Chorégraphie et orchestration

Chorégographie

Chorégographie Chorégographie Chorégraphie et orchestration (dépend de la configuration de l'intégration) Chorégraphie et orchestration (dépend de la configuration de l'intégration)
Paiement par message ou événement par rapport à l'achat en masse Per API call + multiplier for messages > 64 KB Per GB data transfer + Storage Dépend du canal de communication. Prix en fonction de la quantité envoyée. Prix en blocs de 5000 appels d'intégration par heure Non, tarification de la base de données
Destinataires uniques ou multiples pour un message

Destinataire unique. (Conditions Race autorisées, mais un seul consommateur par message).

unique et multiple unique et multiple Unique et multiple (dépend de la définition d'intégration) unique et multiple
Conservation des messages après lecture Non Oui Non Oui (dépend de la définition d'intégration) Oui
Commande garantie Au mieux Oui, dans une partition Non Oui (dépend de la définition d'intégration) Partiel (les règles relatives aux priorités peuvent être définies, ce qui peut imposer l'ordre de consommation)
Opération asynchrone Oui Oui Oui Oui (dépend de la définition d'intégration) Oui
Normes du secteur prises en charge pour les intrants API REST, INVITE Connexion Kafka Evénements cloud à partir d'événements OCI, d'alarmes Plusieurs adaptateurs différents

JMS et SQL

Offrir une visibilité supplémentaire sur les implémentations ORDS personnalisées en fournissant des API REST

Prise en charge des adaptateurs tiers

Implémentations STOMP open source

Tout outil, bibliothèque ou kit SDK Kafka Non Large gamme d'adaptateurs du secteur. Vous pouvez générer à partir d'une interface REST ou d'un client JMS standard.

Utilisation de la bibliothèque standard JMS

Le langage SQL est largement pris en charge

Normes du secteur prises en charge pour les produits INVITE, API REST Connexion Kafka Courriel, Slack, PagerDuty, HTTP/S Plusieurs adaptateurs différents JMS et SQL
Vitesse de message maximale 10 MBITS/S

1 Mo par seconde par partition

Jusqu'à 250 demandes GET par seconde

60 par minute pour HTTP/S

10 par minute pour les courriels

60 par minute pour les sujets de notification

Aucune spécification Dépend du dimensionnement de base de données
Durée de conservation des messages 7 jours (ou plus court si configuré) 7 jours Jusqu'aux tentatives de livraison épuisées Aucun défini Configurable
Volume de conservation maximum 2 Go par file d'attente (20 Go par location) La conservation est dictée par le taux d'écriture maximal de 1 Mo par seconde par partition pendant 7 jours. Fonction de débit des messages et de durée des nouvelles tentatives de distribution. Non applicable Dépend de la configuration de base de données
Prise en charge par le kit SDK OCI ou l'interface de ligne de commande pour l'envoi de messages Oui Oui Oui Non Non
Déploiements individuels par compartiment Oui Oui Oui

Non. Instances Oracle Integration séparées au niveau du compartiment, et non au niveau des intégrations individuelles

Non. Les instances de base de données sont alignées sur les compartiments, et non sur des files d'attente individuelles

Utilise l'authentification IAM (RBAC, etc.) Oui Oui Oui Oui Oui
Les données sont cryptées en vol et au repos Oui Oui Oui Oui Dépend de la configuration de base de données
Transformation de message Non Non

Limité.

Formatage convivial des e-mails, etc. Si l'adresse utilise Oracle Functions, Functions peut transformer le message.

Oui Oui (procédures SQL stockées)
Trace d'audit Oui (à l'aide de la journalisation) Oui (à l'aide de la journalisation) Oui (à l'aide de la journalisation) Oui (inclut Oracle Integration avec Logging) Oui

Vous pouvez interpréter la matrice à l'aide des informations suivantes :

  • Modèle de paiement : fait référence à chaque message ou achat en masse de capacité.
  • Condition d'accès : Lorsqu'une file d'attente comporte plusieurs consommateurs, ceux-ci sont décrits comme étant dans une "condition d'accès" car les messages suivants sont traités par le consommateur qui doit d'abord être prêt pour un autre message.
  • Adresses basées sur REST : certains services proposent des adresses basées sur REST. Si les données traitées REST sont modélisées à l'aide d'une spécification Open API, il se peut qu'elles ne fournissent pas de kit SDK propre aux données traitées. Dans ce cas, vous pouvez utiliser les services API Gateway pour générer des kits SDK. Pour plus d'informations, reportez-vous à la documentation OCI sur la génération de kits SDK pour une ressource d'API.

En plus des services OCI, la matrice fait référence aux technologies suivantes :

  • STOMP : Simple (ou Streaming) Text Orientated Messaging Protocol. Il fournit un format de connexion interopérable afin que les clients STOMP puissent communiquer avec n'importe quel courtier de messages STOMP afin de fournir une interopérabilité de messagerie facile et généralisée entre de nombreuses langues, plates-formes et courtiers.
  • Implémentations STOMP : fait référence aux serveurs de messages STOMP connus.
  • Kafka Connect : cet outil permet de diffuser et de redimensionner de manière fiable les données entre Apache Kafka et d'autres systèmes. Permet de définir rapidement des connecteurs qui déplacent des collections de données volumineuses vers et depuis Kafka.

Vous pouvez consulter des informations supplémentaires sur les technologies dans la section Explorer.