Publication de messages
Emettre ou publier des messages dans un flux de données du service Streaming.
Une fois le flux créé et actif, vous avez la possibilité de publier des messages. Reportez-vous à la section Publication d'un message de test vers un flux de données ou au guide du Developer pour Streaming pour obtenir plus d'informations sur cette publication et familiarisez-vous avec les partitionnement, les messages gros et les traitements batch et les ralentissements pour obtenir un contexte supplémentaire.
Vous pouvez également utiliser Oracle Cloud Infrastructure Connector Hub pour publier des données vers un flux, à partir de services source pris en charge, tels que Logging.
Vous pouvez utiliser la console pour publier des messages de test dans un flux de données, vous devez utiliser l'interface de ligne de commande, l'API ou un kit SDK pour remplir le flux de données.
Afin d'annoncer des messages à l'aide des SDK Oracle Cloud Infrastructure (OCI), reportez-vous au guide du Developer pour Streaming.
Si vous profitez de la conformité Kafka de Streaming, reportez-vous à Développement avec Kafka et Streaming.
Vous pouvez également utiliser Oracle Cloud Infrastructure Connector Hub pour publier des données vers un flux de données à partir de services source pris en charge, tels que Logging.
Messages et partitions
Les messages sont publiés sur une seule partition d'un flux de données. S'il existe plusieurs partition dans le flux, la décision de quelle partition publier le message dépend de l'utilisation de l'API Streaming et de PutMessages ou de l'utilisation de l'API Kafka dans Streaming et de l'utilisation de l'API Kafka.
Si vos émetteurs utilisent l'API Streaming, le partitionnement est géré côté serveur par le service Streaming. Si vos émetteurs utilisent l'API Kafka, le partitionnement est géré côté client par Kafka.
Partitionnement côté serveur
La partition où est publié un message est déterminée à l'aide de la clé du message. Si la clé est NULL, la partition est déterminée à l'aide d'une valeur aléatoire de 16 octets. Vous ne pouvez pas indiquer la partition utilisée par une clé.
La transmission d'une clé NULL place le message dans une partition aléatoire. Si un utilisateur publie le même message deux fois, il peut être dirigé vers différentes partitions, car une clé entièrement nouvelle est générée. Ne vous attendez pas à ce que tous les messages ayant une clé NULL soient dirigés vers la même partition. Pour vous assurer que les messages présentant une valeur identique soient publiés dans la même partition, utilisez la même clé pour ces messages.
Pour plus d'informations, reportez-vous à Publication vers des partitions.
Gestion des messages volumineux
Si vos messages dépassent la limite de 1 Mo, vous pouvez utiliser le découpage par bloc ou envoyer le message à l'aide d'Oracle Cloud Infrastructure Object Storage.
- Découpage par bloc : vous pouvez fractionner des charges utiles volumineuses en plusieurs blocs plus petits que le service Streaming peut accepter. Les blocs sont stockés dans le service de la même manière que les messages ordinaires (non découpés en blocs). La seule différence est que le destinataire doit conserver les blocs et les combiner en un message lorsque tous les blocs ont été collectés. Les blocs de la partition peuvent être entrelacés avec des messages ordinaires.
-
Object Storage : une charge utile volumineuse est placée dans Object Storage et seul le pointeur vers ces données est transféré. Le récepteur reconnaît ce type de charge utile de pointeur, lit les données de manière transparente à partir d'Object Storage et les fournit à l'utilisateur final.
Traitement batch et ralentissement
Nous vous recommandons de traiter les messages en batch pour éviter tout ralentissement et permettre un meilleur débit. La taille d'un batch de messages ne doit pas dépasser 1 Mo. Si cette limite est dépassée, la validation du message échoue.
Le mécanisme de ralentissement de PutMessages est activé lorsque les taux d'écriture de données dépassent 1 Mo par seconde et par partition. Le nombre d'écritures dans un flux de données n'est pas limité, à condition que vous soyez sous le débit de 1 Mo par seconde et par partition.
Pour plus d'informations, reportez-vous à Limites relatives aux ressources Streaming.
Stratégie IAM requis
Pour utiliser Oracle Cloud Infrastructure, un administrateur doit être membre d'un groupe auquel un administrateur de location a accordé un accès de sécurité dans une stratégie . Cet accès est requis, que vous utilisiez la console ou l'API REST avec un kit SDK, une interface de ligne de commande ou un autre outil. Si un message vous informe que vous n'avez pas d'autorisation ou que vous n'êtes pas autorisé, vérifiez auprès de l'utilisateur le type d'accès qui vous est accordé et le compartiment dans lequel vous travaillez.
Pour les administrateurs : la stratégie dans Autoriser les administrateurs du service Streaming à gérer les ressources Streaming permet au groupe indiqué de réaliser toutes les opérations de transmission en continu et celles relatives aux ressources associées au service Streaming.
Si vous ne connaissez pas les stratégies, reportez-vous à Présentation des stratégies IAM. Pour plus d'informations sur l'écriture de stratégies pour le service Streaming, reportez-vous à la section Détails du Service Streaming dans la référence d'une stratégie IAM et à la section Accès à des ressources Streaming sur des locations.