Présentation de Streaming
Le service Oracle Cloud Infrastructure Streaming offre une solution évolutive et durable entièrement gérée permettant d'inclure et d'utiliser des flux de données volumineux en temps réel. Utilisez Streaming pour tout cas d'emploi dans lequel des données sont produites et traitées de manière continue et séquentielle suivant un modèle d'échange de messages de type publication-abonnement.
Vous pouvez utiliser Streaming pour les opérations suivantes :
- Messagerie
- Utilisez Streaming pour découpler les composants des systèmes volumineux. Les émetteurs et les destinataires peuvent utiliser Streaming comme un bus de messages asynchrones et agir de manière indépendante et à leur propre rythme.
- Inclusion des mesures et des journaux
- Plutôt qu'une approche standard d'inspection superficielle des fichiers, utilisez Streaming afin que les données opérationnelles fondamentales soient plus rapidement disponibles pour indexation, analyse et visualisation.
- Inclusion des données d'activité Web ou mobiles
- Utilisez Streaming pour capturer l'activité des sites Web ou des applications mobiles, par exemple les vues de page, les recherches ou d'autres actions effectuées par les utilisateurs. Vous pouvez utiliser ces informations pour l'analyse et la surveillance en temps réel, et dans les systèmes d'entreposage de données, pour la génération de rapports et le traitement hors ligne.
- Traitement des événements d'application et d'infrastructure
- Utilisez Streaming comme point d'entrée unifié permettant aux composants cloud de rendre compte de leurs événements de cycle de vie en vue des activités d'audit, de comptabilité et d'autres activités associées.
Caractéristiques de Streaming
Streaming présente les caractéristiques suivantes :
- Entièrement géré
- Streaming est entièrement géré, qu'il s'agisse de l'infrastructure sous-jacente, du provisionnement, du déploiement, de la maintenance, des patches de sécurité ou de la réplication. L'intégration à Monitoring et les mesures par défaut facilitent les opérations.
Oracle gère les partitions de flux de données et les groupes de destinataires peuvent s'occuper des positions de message.
- Durabilité et disponibilité
- Les messages publiés vers le service Streaming sont répliqués de façon synchrone dans trois domaines de disponibilité (s'ils existent). Dans les régions comportant un seul domaine de disponibilité, les données sont répliquées dans plusieurs domaines de pannes. Ainsi, même la défaillance d'un domaine de disponibilité ou d'un domaine de pannes n'entraîne pas de perte de données. Il en résulte des données hautement durables.
Oracle Cloud Infrastructure fournit un contrat de niveau de service pour Streaming. Pour plus de détails, reportez-vous à la page Contrat de niveau de service Oracle Cloud Infrastructure.
- Sécurité
-
Les données de Streaming sont cryptées, qu'elles soient au repos ou en transit, ce qui garantit l'intégrité des messages. Vous pouvez laisser Oracle gérer le cryptage ou utiliser le service Oracle Cloud Infrastructure Vault pour stocker et gérer en toute sécurité vos propres clés de cryptage si vous devez respecter des normes de conformité ou de sécurité spécifiques.
L'intégration à Oracle Cloud Infrastructure Identity and Access Management (IAM) vous permet de contrôler les personnes et les services pouvant accéder aux différentes clés et ce qu'ils peuvent faire avec ces ressources.
Les adresses privées restreignent l'accès à un réseau cloud virtuel spécifié de la location de sorte que ses flux de données ne soient pas accessibles via Internet.
Pour plus d'informations, reportez-vous à Meilleures pratiques relatives à la sécurité pour Streaming.
- Traitement de flux
- L'intégration de Streaming à Oracle Cloud Infrastructure Connector Hub signifie que vous pouvez désigner un flux de données en tant que source de données, utiliser Oracle Cloud Infrastructure Functions pour transformer les messages du flux et générer les messages transformés dans Object Storage ou toute autre cible Connector Hub prise en charge tout en conservant les garanties d'ordre de Streaming.
- Compatibilité Kafka
- Streaming permet de se décharger des opérations de configuration, de maintenance et de gestion de l'infrastructure exigées par l'hébergement de votre propre cluster Apache Kafka.
Streaming est compatible avec la plupart des API Kafka, ce qui vous permet d'utiliser des applications écrites pour Kafka afin d'envoyer des messages vers le service Streaming et d'en recevoir sans avoir à réécrire votre code. Pour plus d'informations, reportez-vous à Utilisation des API Kafka.
Streaming tire également parti de l'écosystème Kafka Connect pour interagir directement avec des produits internes et tiers à l'aide des connecteurs de récepteur et source Kafka prêts à l'emploi. Pour plus d'informations, reportez-vous à Utilisation de Kafka Connect.
Fonctionnement de Streaming
Voici comment Streaming fonctionne :
Un émetteur publie des messages dans un flux, qui est un journal d'ajout uniquement. Ces messages sont distribués entre des partitions gérées par Oracle à des fins d'évolutivité.
Les partitions permettent de distribuer un flux en fractionnant les messages entre plusieurs noeuds (ou brokers). Chaque partition peut être placée sur un ordinateur distinct, ce qui permet à plusieurs destinataires de lire un flux en parallèle.
Un destinataire lit des messages à partir d'au moins une partition. Les destinataires peuvent accéder en lecture à n'importe quelle partition, où qu'elle soit hébergée. Chaque message dans un flux est marqué par une valeur de position, afin que le destinataire puisse reprendre là où il en était en cas d'interruption. Les messages d'une partition sont garantis d'être distribués dans l'ordre dans lequel ils ont été produits.
Pour plus d'informations, reportez-vous à :
Concepts du service Streaming
Les concepts suivants sont essentiels pour comprendre et utiliser le service Streaming.
- flux de données
- Journal partitionné ajouté à la fin uniquement des messages
- pool de flux de données
-
Regroupement que vous pouvez utiliser pour organiser et gérer les flux de données, y compris les paramètres de sécurité ou Kafka partagés.
- partition
- Section d'un flux de données. Les partitions permettent de distribuer un flux en fractionnant les messages sur plusieurs noeuds. Elles permettent également à plusieurs destinataires de lire un flux en parallèle.
- curseur
-
Pointeur vers un emplacement dans un flux. Cet emplacement peut être un pointeur vers une position ou une heure spécifique dans une partition, ou vers l'emplacement en cours d'un groupe.
- message
- Message encodé au format Base64 publié dans un flux. Streaming est indépendant du schéma et accepte tout format de message, y compris les formats XML, JSON, CSV et même compressés, tels que GZIP. Les émetteurs et les destinataires doivent s'entendre sur le format du message.
- émetteur
- Entité qui publie des messages dans un flux.
- destinataire
- Entité qui lit les messages provenant des flux.
- groupe de destinataires
- Ensemble d'instances qui coordonnent l'utilisation des messages de toutes les partitions d'un flux. A tout moment, les messages d'une partition spécifique ne peuvent être utilisés que par un seul destinataire du groupe.
- instance
- Membre d'un groupe de destinataires. Les instances sont définies lors de la création d'un curseur de groupe. L'appartenance à un groupe est gérée via l'interaction. L'absence d'interaction entraîne l'expiration, ce qui enlève l'instance du groupe de destinataires.
- clé
- Identificateur utilisé pour regrouper des messages associés.
- position
- Emplacement d'un message dans une partition. Chaque message de la partition est identifié par sa position. Les destinataires peuvent lire les messages à partir de n'importe quelle position choisie. Vous pouvez utiliser la position pour reprendre la lecture à partir d'un flux en cas d'interruption.
Avantages des flux de données
Les flux de données présentent plusieurs avantages par rapport aux files d'attente de messagerie traditionnelles, notamment les suivants :
- Persistance des messages configurable
- Vous contrôlez la durée de conservation des données. Les messages d'un flux de données ne sont pas mutables. Ils sont disponibles pendant toute la durée de conservation configurée pour le flux.
- Réexécution
- Etant donné que les messages d'un flux ne sont pas immédiatement enlevés lorsqu'ils sont traités par des destinataires, vous pouvez les réexécuter à tout moment dans la limite de conservation configurée.
- Garanties relatives aux messages
- Chaque message est garanti d'être distribué au moins une fois. Dans certains cas, par exemple si un destinataire ne valide pas des messages avant de passer hors ligne, ceux-ci peuvent être distribués plusieurs fois.
- Garanties relatives à l'ordre
- Les messages d'un flux de données, par partition, sont toujours distribués dans l'ordre dans lequel ils ont été produits.
- Curseurs côté client
- Vos applications client contrôlent et suivent les messages lus et peuvent déplacer le curseur si nécessaire pour une flexibilité maximale.
- Redimensionnement horizontal
- Les partitions permettent d'augmenter le débit afin de répondre aux besoins de plusieurs destinataires, ce qui augmente la flexibilité.
- Groupes de destinataires
- Les groupes de destinataires gèrent toute la coordination nécessaire pour distribuer les messages à plusieurs destinataires de manière équilibrée. Etant donné que cette gestion est assurée par un groupe de destinataires pour le compte de tous les membres, vous pouvez bénéficier d'une surcharge moindre et d'une certaine facilité opérationnelle.