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 à Publication d'un message de test vers un flux de données ou au guide du développeur vers Streaming pour plus d'informations sur la publication et familiarisez-vous avec le partitionnement, les messages volumineux et les traitements batch et les ralentissements pour obtenir davantage de contexte.

Conseil

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 de publier des messages à l'aide des kits SDK Oracle Cloud Infrastructure (OCI), reportez-vous au guide du développeur pour Streaming.

Pour profiter de la compatibilité 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 à 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 partitions dans le flux de données, le choix de la partition vers laquelle publier le message varie selon que les émetteurs utilisent l'API Streaming et PutMessages ou tirent parti de la compatibilité Kafka dans Streaming et utilisent 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 disposant d'un accès sécurisé dans une stratégie par un administrateur de location. 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 indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur de location le type d'accès dont vous disposez et le compartiment dans lequel votre accès fonctionne.

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 à Détails du service Streaming dans la référence de stratégie IAM et à accès aux ressources Streaming dans des locations.