AIDE .NET

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche)

Publié août 13, 2024
Partager:

Dans le paysage numérique interconnecté d'aujourd'hui, une communication efficace est la pierre angulaire des entreprises prospères. Qu'il s'agisse de transmettre des données critiques entre des applications ou d'assurer des mises à jour en temps réel dans des systèmes distribués, une infrastructure de messagerie fiable est indispensable.

Azure Service Busun service de messagerie basé sur le cloud, apparaît comme une solution robuste permettant aux développeurs de créer des applications évolutives, découplées et résilientes. Pénétrons dans le monde d'Azure Service Bus pour en comprendre l'importance et en explorer les innombrables possibilités. Dans la suite de cet article, nous aborderons également les points suivants IronPDF pour gérer, générer et lire des documents PDF.

Comprendre Azure Service Bus

Azure Service Bus est un courtier de messages d'intégration d'entreprise entièrement géré qui facilite une communication fiable entre les applications et les services, qu'ils soient exécutés sur le nuage, sur site ou dans des environnements hybrides.

Il fournit des capacités de messagerie flexibles, y compris des mécanismes de file d'attente et de publication/abonnement, afin de permettre une communication transparente entre les composants disparates d'un système distribué. En outre, il autorise les messages par lots, ce qui permet d'envoyer plusieurs messages sans dépasser la contrainte de taille totale.

Azure Service Bus offre les avantages suivants :

  1. Découplage des applications : Le Service Bus permet de séparer les applications et les services les uns des autres. Ce découplage améliore la fiabilité et l'évolutivité.
  2. Equilibrage de la charge : Il permet d'équilibrer le travail entre les travailleurs concurrents, garantissant ainsi une utilisation efficace des ressources.
  3. Transfert de messages : Les données sont transférées entre les applications et les services à l'aide de messages. Le corps de ces messages peut contenir différents types de données, tels que JSON, XML ou du texte brut.
  4. Scénarios de messagerie : Les scénarios les plus courants sont le transfert de données commerciales (par exemple, les commandes de vente)il est également possible d'établir des relations entre les éditeurs et les abonnés à l'aide de thèmes et d'abonnements.
  5. Transactions : Le Service Bus prend en charge les transactions atomiques, qui permettent d'effectuer plusieurs opérations dans le cadre d'une seule transaction. Une transaction comporte plusieurs appels simultanés, alors qu'un lot de messages ne comporte qu'un seul appel.
  6. Sessions de messages : Il facilite la coordination à grande échelle des flux de travail et des transferts de messages ordonnés.

Principales caractéristiques et capacités

  1. Queuesues et Topics: Azure Service Bus propose des files d'attente et des topics comme canaux de communication. Les files d'attente permettent une communication point à point, garantissant que chaque message n'est traité que par un seul destinataire, ce qui en fait la solution idéale pour la distribution de la charge de travail et les scénarios de nivellement de la charge. D'autre part, les thèmes prennent en charge les modèles de messagerie de type publication/abonnement, ce qui permet à plusieurs abonnés de recevoir des messages pertinents de manière indépendante et facilite les architectures évolutives axées sur les événements.

  2. **Avec Azure Service Bus, la livraison des messages est intrinsèquement fiable. Il assure la persistance des messages, peut configurer le gestionnaire de messages et d'erreurs, la tolérance aux pannes et la sémantique de livraison "au moins une fois", minimisant ainsi le risque de perte ou de duplication des données. En outre, il prend en charge les transactions, ce qui permet d'effectuer des opérations atomiques sur plusieurs messages, garantissant ainsi l'intégrité des données.

  3. **Pour traiter efficacement les messages erronés, Azure Service Bus fournit des capacités de dead-lettering, permettant aux messages problématiques d'être automatiquement déplacés vers une file d'attente séparée pour l'analyse et le dépannage. En outre, il offre des politiques de relance flexibles, permettant aux développeurs de configurer des relances automatiques avec des stratégies de recul exponentiel, améliorant ainsi la résilience des applications face aux défaillances transitoires.

  4. Partitionnement et mise à l'échelle: Azure Service Bus prend en charge le partitionnement des entités de messagerie pour distribuer la charge de travail sur plusieurs nœuds, garantissant ainsi une mise à l'échelle horizontale et un débit élevé. Cette capacité est essentielle pour traiter de grands volumes de messages et s'adapter à des charges de travail fluctuantes sans compromettre les performances ou la fiabilité.

  5. Intégration avec l'écosystème Azure: Azure Service Bus s'intègre de manière transparente avec d'autres services Azure, tels que Azure Functions, Logic Apps, Event Grid, et Azure Kubernetes Service (AKS)permettant aux développeurs d'élaborer facilement des solutions de bout en bout. Qu'il s'agisse de déclencher des fonctions sans serveur en réponse à des messages entrants ou d'orchestrer des flux de travail complexes à l'aide de Logic Apps, Azure Service Bus sert de pivot à la construction d'architectures robustes et axées sur les événements.

Introduction à IronPDF

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 1

IronPDF est une puissante bibliothèque PDF C# qui vous permet de générer, d'éditer et d'extraire le contenu de documents PDF dans des projets .NET. En voici les principales caractéristiques :

  1. Conversion HTML en PDF :

    • Convertissez du contenu HTML, CSS et JavaScript au format PDF.

    • Utilisez le moteur de rendu Chrome pour obtenir des PDF au pixel près.
    • Générer des PDF à partir d'URL, de fichiers HTML ou de chaînes HTML.
  2. Conversion d'images et de contenus :

    • Convertissez des images depuis et vers des PDF.

    • Extraction de texte et d'images à partir de PDF existants.
    • Prise en charge de différents formats d'image.
  3. Édition et manipulation :

    • Définir les propriétés, la sécurité et les autorisations pour les PDF.

    • Ajouter des signatures numériques.
    • Modifier les métadonnées et l'historique des révisions.
  4. Support multiplateforme :

    • Fonctionne avec .NET Core (8, 7, 6, 5 et 3.1+), Standard .NET (2.0+)et le Framework .NET (4.6.2+).

    • Compatible avec Windows, Linux et macOS.
    • Disponible sur NuGet pour une installation facile.

Générer un document PDF en utilisant IronPDF et Azure.Messaging.ServiceBus

Pour commencer, créez une application console à l'aide de Visual Studio comme suit

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 2

Indiquer le nom du projet

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 3

Fournir la version .NET

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 4

Installer le IronPDF paquet

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 5

Création d'un bus de service Azure

Créez un espace de noms avec un nom unique dans Azure. Un espace de noms est un conteneur pour les ressources du Bus de service, telles que les files d'attente et les thèmes, au sein de votre application.

Voici comment créer un espace de noms :

  1. Connectez-vous au portail Azure.
  2. Accédez à la page "Tous les services".
  3. Dans le volet de navigation de gauche, sélectionnez "Intégration" dans la liste des catégories.
  4. Survolez "Bus de services" et cliquez sur le bouton "+" de la tuile Bus de services.

    Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 6

    Pour configurer la balise Basics sur la page Create namespace, procédez comme suit :

  5. Subscription : Sélectionnez l'abonnement Azure dans lequel vous souhaitez créer l'espace de noms.
  6. Groupe de ressources : Choisissez un groupe de ressources existant dans lequel l'espace de noms sera situé ou créez-en un nouveau.

    1. Namespace name : Entrez un nom pour l'espace de noms. Veillez à ce que le nom réponde aux critères suivants :

      • Il doit être unique dans Azure.

      • La longueur doit être comprise entre 6 et 50 caractères.

      • Ne peut contenir que des lettres, des chiffres et des traits d'union "-".

      • Doit commencer par une lettre et se terminer par une lettre ou un chiffre.
    • Ne peut se terminer par "-sb" ou "-mgmt".
  7. Localisation : Sélectionnez la région où votre espace de noms doit être hébergé.
  8. Tranche de tarification : Choisissez le niveau de tarification (Basic, Standard ou Premium) pour l'espace de noms. Pour cet exemple, sélectionnez Standard.

    1. Sélectionnez Review + Create en bas de la page.

    Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 7

  9. Sélectionnez Créer sur la page Review + Create.

  10. Une fois le déploiement de la ressource réussi, Aller à la ressource.

    La page d'accueil de l'espace de noms de votre bus de service s'affiche.

Créer des files d'attente de bus de service dans le portail Azure

Pour configurer une file d'attente dans l'espace de noms de votre bus de services, procédez comme suit :

  1. Naviguez jusqu'à Queues : Allez sur la page Service Bus Namespace dans le portail Azure. Sélectionnez "Files d'attente" dans le menu de navigation de gauche.
  2. Créer une nouvelle file d'attente : Sur la page Files d'attente, cliquez sur le bouton "+ File d'attente" dans la barre d'outils. 3. Configurer la file d'attente : Entrez un nom pour votre file d'attente dans le champ prévu à cet effet. Laissez les autres paramètres à leur valeur par défaut. Les options à configurer lors de la création d'une file d'attente Azure Service Bus :
  3. Nom : Il s'agit de l'identifiant unique de votre file d'attente. Choisissez un nom descriptif et facile à retenir.
  4. Taille maximale de la file d'attente : Ce paramètre définit la capacité de stockage maximale de la file d'attente. Vous pouvez le régler sur 1 Go, 2 Go, 5 Go, 10 Go, 20 Go, 40 Go, 80 Go ou 100 Go. Dans votre cas, il est réglé sur 1 GB.
  5. Compte de distribution maximum : Indique le nombre maximum de fois qu'un message peut être délivré avant d'être envoyé dans la file d'attente des lettres mortes ou d'être rejeté. Cela permet de gérer les échecs de traitement des messages.
  6. Message time to live (TTL) : Ce paramètre détermine la durée pendant laquelle un message reste dans la file d'attente avant d'expirer. Vous pouvez régler cette valeur en jours, heures, minutes et secondes. Une fois le TTL atteint, les messages de lettres mortes sont soit rejetés, soit déplacés vers la file d'attente des lettres mortes si la fonction de lettres mortes est activée.
  7. Durée du blocage : Il s'agit de la durée pendant laquelle un message est bloqué pour être traité par un destinataire. Pendant ce temps, les autres récepteurs ne peuvent pas traiter le même message. Vous pouvez définir cette durée en jours, heures, minutes et secondes.
  8. Activer le lettrage mort à l'expiration du message : Lorsque cette option est activée, les messages qui expirent (c'est-à-dire qu'ils dépassent leur TTL) sont déplacées dans la file d'attente des lettres mortes au lieu d'être rejetées. Cela permet de poursuivre l'inspection et le traitement des messages expirés.
  9. Activer le partitionnement : Cette option permet de partitionner la file d'attente entre plusieurs courtiers de messages, ce qui peut améliorer l'évolutivité et le débit. Le partitionnement est utile pour traiter de gros volumes de messages.

    Ces paramètres vous permettent de contrôler le comportement et les performances de votre file d'attente Azure Service Bus, en veillant à ce qu'elle réponde aux exigences de votre application

    Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 8

  10. Terminer la création : Cliquez sur le bouton "Créer" pour finaliser la création de la file d'attente. Ces étapes vous permettent de créer avec succès une file d'attente dans l'espace de noms de votre bus de services à l'aide du portail Azure.

    Installez Azure.Messaging.ServiceBus, une bibliothèque client de bus de service pour vous connecter à la file d'attente Azure à l'aide d'une chaîne de connexion.

    Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 9

    Ajoutez le code ci-dessous pour envoyer et recevoir des messages en utilisant Azure.Messaging.ServiceBus.

using Azure.Messaging.ServiceBus;
namespace CodeSample
{
    public static class AzureServiceBusDemo
    {
        public static async Task Execute()
        {
            string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
            string queName = "ironpdf";
            Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
            Installation.EnableWebSecurity = true;
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
            content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            await using var client = new ServiceBusClient(connectionString);
            var msgText = "IronPDF is Awesome Package";
            content += $"<p>Message:{msgText}</p>";
            var tx = client.CreateSender(queName);
            await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // message await sender
            Console.WriteLine($"Sent Below message at:{DateTime.Now}");
            content += $"<p>Sent Below message at:{DateTime.Now}</p>";
            Console.Read(); // wait for user input to read the message;
            var rx = client.CreateReceiver(queName);
            var msg = await rx.ReceiveMessageAsync(); // receive messages
            content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            content += $"<p>Recieved Below message at:{DateTime.Now}</p>";
            Console.WriteLine($"Recieved Below message at:{DateTime.Now}");
            content += $"<p>MessageID={msg}</p>";
            Console.WriteLine($"MessageID={msg}");
            content += $"<p>Message Received: {msg.Body}</p>";
            Console.WriteLine($"Message Received: {msg.Body}");
            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
        }
    }
}
using Azure.Messaging.ServiceBus;
namespace CodeSample
{
    public static class AzureServiceBusDemo
    {
        public static async Task Execute()
        {
            string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
            string queName = "ironpdf";
            Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
            Installation.EnableWebSecurity = true;
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
            content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            await using var client = new ServiceBusClient(connectionString);
            var msgText = "IronPDF is Awesome Package";
            content += $"<p>Message:{msgText}</p>";
            var tx = client.CreateSender(queName);
            await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // message await sender
            Console.WriteLine($"Sent Below message at:{DateTime.Now}");
            content += $"<p>Sent Below message at:{DateTime.Now}</p>";
            Console.Read(); // wait for user input to read the message;
            var rx = client.CreateReceiver(queName);
            var msg = await rx.ReceiveMessageAsync(); // receive messages
            content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            content += $"<p>Recieved Below message at:{DateTime.Now}</p>";
            Console.WriteLine($"Recieved Below message at:{DateTime.Now}");
            content += $"<p>MessageID={msg}</p>";
            Console.WriteLine($"MessageID={msg}");
            content += $"<p>Message Received: {msg.Body}</p>";
            Console.WriteLine($"Message Received: {msg.Body}");
            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Explication du code

  1. Chaîne de connexion et nom de la file d'attente :

    • La variable connectionString contient les détails de la connexion pour votre espace de noms Azure Service Bus. Il spécifie le point final, la clé d'accès partagée et le chemin d'accès à l'entité (nom de la file d'attente).
    • La variable queName contient le nom de la file d'attente du Service Bus avec laquelle vous souhaitez travailler.
  2. Demo Setup :

    • Le code commence par imprimer un message : "Démonstration d'IronPDF avec Azure.Messaging.ServiceBus"
    • Il active la sécurité web en utilisant Installation.EnableWebSecurity = true ;.
  3. Création d'un client de bus de services :

    • Le ServiceBusClient est créé à l'aide de la chaîne de connexion fournie.
    • Ce client vous permet d'interagir avec les entités du bus de service (les files d'attente, les sujets, etc.).
  4. Envoi d'un message :

    • Un message dont le contenu est "IronPDF is Awesome Package" est envoyé à la file d'attente spécifiée à l'aide de la méthode CreateSender.

    • Le message est créé à l'aide du nouveau ServiceBusMessage(msgText).
    • L'horodatage du message envoyé est imprimé sur la console.
  5. Recevoir un message :

    • Un récepteur est créé pour la même file d'attente à l'aide de CreateReceiver.

    • Le code attend l'entrée de l'utilisateur (using Console.Read()) pour simuler le traitement des messages.
    • Lorsqu'un message est reçu, son identifiant et son corps sont imprimés sur la console.
  6. Générer un PDF :

    • Le moteur de rendu crée un PDF à partir du contenu HTML (y compris les messages envoyés et reçus).
    • Le PDF résultant est enregistré sous le nom "AwesomeAzureServiceBusQueueAndIronPdf.pdf"

Sortie

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 10

PDF (EN ANGLAIS)

Azure.Messaging.ServiceBus Exemple C# (Comment ça marche) : Figure 11

Licences d'IronPDF

Le paquet IronPDF nécessite une licence pour pouvoir être exécuté et générer le PDF. Ajoutez le code ci-dessous au début de l'application avant l'accès au paquet.

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Une licence d'essai est disponible ici.

Conclusion

À une époque caractérisée par la transformation numérique et les avancées technologiques rapides, le bus de service Azure apparaît comme un composant essentiel dans le parcours de modernisation des entreprises du monde entier. En fournissant des capacités de messagerie fiables, évolutives et flexibles, il permet aux développeurs d'élaborer des solutions résilientes et agiles qui peuvent s'adapter à l'évolution des besoins de l'entreprise.

Qu'il s'agisse de faciliter une intégration transparente, de permettre des architectures basées sur les événements ou d'assurer une communication asynchrone, Azure Service Bus joue un rôle transformateur en stimulant l'innovation et en accélérant les initiatives numériques dans tous les secteurs d'activité.

Alors que les entreprises continuent d'adopter des paradigmes "cloud-native" et des architectures distribuées, Azure Service Bus témoigne de l'engagement de Microsoft à aider les développeurs et les entreprises dans leur voyage vers le "cloud". IronPDF simplifie la génération de PDF au sein des applications .NET, en offrant la flexibilité et la fonctionnalité nécessaires à la création de documents de qualité professionnelle directement à partir du code.

< PRÉCÉDENT
WebGrease .NET Core (Comment ça marche pour les développeurs)
SUIVANT >
Simple Injector C# (Comment ça marche pour les développeurs)