Contrôler l'utilisation de l'API en limitant la fréquence des appels (par exemple, 100 appels/min) par rapport au nombre total d'appels sur une période plus longue (par exemple, 10 000 appels/mois).
→Utiliser la politique `rate-limit` pour la fréquence des appels. Utiliser la politique `quota` pour le volume total d'appels.
Pourquoi: `rate-limit` limite les pics à court terme et renvoie un HTTP 429. `quota` impose une limite d'utilisation sur une période plus longue (par exemple, une période de facturation) et renvoie un HTTP 403 lorsqu'elle est dépassée.
Référence↗
Mettre en cache les réponses API dans API Management pour réduire la charge du backend, avec la clé de cache variant selon un en-tête de requête.
→Utiliser une politique `<cache-lookup vary-by-header="..." />` dans la section entrante et une politique `<cache-store duration="..." />` dans la section sortante.
Pourquoi: Cette combinaison de politiques en deux parties active la mise en cache des réponses. `cache-lookup` vérifie la présence d'un élément mis en cache, et `cache-store` enregistre la réponse. Les attributs `vary-by` garantissent des entrées de cache uniques pour différentes variations de requêtes.
Gérer les modifications d'une API. Un changement disruptif est requis vs. un changement non-disruptif doit être testé.
→Utiliser les Versions pour les changements disruptifs (par exemple, /v1, /v2). Utiliser les Révisions pour les changements non-disruptifs et les déploiements progressifs et sécurisés.
Pourquoi: Le versioning permet à plusieurs versions d'API d'être actives simultanément. Les révisions vous permettent de modifier une API hors ligne, de la tester, puis de la rendre la révision "actuelle" sans interruption de service.
Notifier plusieurs services aval indépendants lorsqu'un événement se produit dans un service Azure (par exemple, blob créé, groupe de ressources créé).
→Utiliser Azure Event Grid. Créer un topic système pour la ressource Azure et des abonnements aux événements pour chaque gestionnaire aval.
Pourquoi: Event Grid est un service pub/sub entièrement géré, basé sur le push, qui découple les éditeurs d'événements des abonnés, permettant des architectures réactives et événementielles.
Référence↗
Ingérer un flux de télémétrie ou de données d'événements à haut volume (millions d'événements par seconde) provenant de nombreux appareils.
→Utiliser Azure Event Hubs.
Pourquoi: Event Hubs est une plateforme de streaming de données massivement évolutive conçue pour l'ingestion à haut débit. Elle utilise un modèle de consommateur partitionné pour le traitement parallèle.
S'assurer que les événements provenant de la même source (par exemple, un appareil IoT spécifique) sont traités dans l'ordre par le même consommateur.
→Envoyer des événements à Event Hubs avec une clé de partition définie sur l'identifiant de la source (par exemple, ID d'appareil).
Pourquoi: Event Hubs achemine tous les messages avec la même clé de partition vers la même partition. Au sein d'une partition, l'ordre des messages est maintenu.
Traiter une séquence de messages liés dans un ordre strict Premier entré, premier sorti (FIFO).
→Utiliser les sessions Azure Service Bus. Envoyer tous les messages liés avec le même `SessionId`.
Pourquoi: Les sessions fournissent un flux de messages concurrent et ordonné. Un récepteur conscient de la session verrouille la session, garantissant que les messages sont traités séquentiellement par un seul consommateur.
Un seul éditeur envoie des messages à un topic, mais plusieurs abonnés ne veulent qu'un sous-ensemble de ces messages basé sur les propriétés des messages.
→Utiliser un topic Service Bus avec plusieurs abonnements. Appliquer des filtres SQL ou des filtres de corrélation à chaque abonnement.
Pourquoi: C'est le modèle de publication-abonnement canonique avec routage basé sur le contenu. Chaque abonnement reçoit une copie du message s'il correspond à sa règle de filtre.
Un message ne peut pas être traité avec succès après plusieurs tentatives et doit être mis de côté pour une inspection ultérieure.
→Laisser le message échouer le traitement jusqu'à ce que son nombre maximal de livraisons soit dépassé. Il sera automatiquement déplacé vers la Dead-Letter Queue (DLQ).
Pourquoi: La DLQ est une sous-file d'attente intégrée pour les messages "poison". Cela empêche un message défaillant de bloquer la file d'attente principale et permet une analyse et un retraitement hors ligne.
Choisir un service de messagerie pour : commandes d'entreprise, événements réactifs ou télémétrie à haut volume.
→Service Bus pour les commandes (ordres, transactions). Event Grid pour les événements réactifs (blob créé, ressource modifiée). Event Hubs pour la télémétrie (données IoT, parcours de clics).
Pourquoi: Service Bus offre des fonctionnalités riches comme l'ordonnancement, les transactions et la mise en file d'attente des messages non distribuables. Event Grid est pour le routage d'événements léger et basé sur le push. Event Hubs est pour le streaming de données à haut débit.