.NET-HILFE

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert)

Veröffentlicht 13. August 2024
Teilen Sie:

In der heutigen vernetzten digitalen Landschaft ist eine effiziente Kommunikation der Grundstein für erfolgreiche Unternehmen. Ganz gleich, ob es um die Übertragung kritischer Daten zwischen Anwendungen oder die Sicherstellung von Echtzeit-Updates in verteilten Systemen geht - eine zuverlässige Messaging-Infrastruktur ist unverzichtbar.

Azure Service Bus, ein Cloud-basierter Messaging-Dienst, erweist sich als robuste Lösung, die es Entwicklern ermöglicht, skalierbare, entkoppelte und widerstandsfähige Anwendungen zu erstellen. Lassen Sie uns in das Reich von Azure Service Bus eintauchen, um seine Bedeutung zu verstehen und seine unzähligen Möglichkeiten zu erkunden. Später in diesem Artikel werden wir uns auch mit folgenden Themen befassenIronPDF um PDF-Dokumente zu verwalten, zu erstellen und zu lesen.

Verstehen von Azure Service Bus

Azure Service Bus ist ein vollständig verwalteter Nachrichtenbroker für die Unternehmensintegration, der eine zuverlässige Kommunikation zwischen Anwendungen und Diensten ermöglicht, unabhängig davon, ob diese in der Cloud, vor Ort oder in hybriden Umgebungen ausgeführt werden.

Es bietet flexible Messaging-Funktionen, einschließlich Warteschlangen und Publish/Subscribe-Mechanismen, um eine nahtlose Kommunikation zwischen verschiedenen Komponenten eines verteilten Systems zu ermöglichen. Außerdem sind Batch-Nachrichten möglich, die mehrere Nachrichten zulassen, ohne dass die Gesamtgröße überschritten wird.

Azure Service Bus bietet die folgenden Vorteile:

  1. Entkopplung von Anwendungen: Mit Service Bus können Sie Anwendungen und Dienste voneinander trennen. Diese Entkopplung verbessert die Zuverlässigkeit und Skalierbarkeit.

  2. Lastausgleich: Er verteilt die Arbeit auf konkurrierende Mitarbeiter und sorgt so für eine effiziente Ressourcennutzung.

  3. Message Transfer: Daten werden zwischen Anwendungen und Diensten mit Hilfe von Nachrichten übertragen. Der Nachrichtentext dieser Nachrichten kann verschiedene Datentypen enthalten, z. B. JSON, XML oder reinen Text.

  4. Messaging-Szenarien: Häufige Szenarien sind die Übertragung von Geschäftsdaten(z.B. Kundenaufträge)lastausgleich und Ermöglichung von Beziehungen zwischen Herausgebern und Abonnenten durch Themen und Abonnements.

  5. Transaktionen: Service Bus unterstützt atomare Transaktionen, die mehrere Operationen innerhalb eines einzigen Transaktionsbereichs ermöglichen. Eine Transaktion würde mehrere gleichzeitige Aufrufe haben, während ein Nachrichtenstapel einen einzigen Aufruf hätte.

  6. Nachrichten-Sitzungen: Es erleichtert die Koordinierung von Arbeitsabläufen in großem Maßstab und die geordnete Übertragung von Nachrichten.

Hauptmerkmale und Funktionen

  1. Warteschlangen und Themen: Azure Service Bus bietet sowohl Warteschlangen als auch Themen als Kommunikationskanäle. Warteschlangen ermöglichen eine Punkt-zu-Punkt-Kommunikation, die sicherstellt, dass jede Nachricht nur von einem Empfänger verarbeitet wird, was ideal für die Verteilung der Arbeitslast und Szenarien zur Lastverteilung ist. Andererseits unterstützen Topics Publish/Subscribe-Messaging-Muster, die es mehreren Abonnenten ermöglichen, relevante Nachrichten unabhängig voneinander zu empfangen, und die skalierbare ereignisgesteuerte Architekturen erleichtern.

  2. Zuverlässige Nachrichtenübermittlung: Mit Azure Service Bus ist die Nachrichtenübermittlung von Natur aus zuverlässig. Es sorgt für die Persistenz von Nachrichten, kann die Nachrichten- und Fehlerbehandlung konfigurieren, bietet Fehlertoleranz und eine "at-least-once"-Übermittlungssemantik und minimiert so das Risiko von Datenverlust oder -duplizierung. Darüber hinaus unterstützt es Transaktionen, die atomare Operationen über mehrere Nachrichten hinweg ermöglichen und so die Datenintegrität gewährleisten.

  3. Dead-Lettering und Wiederholungsrichtlinien: Um fehlerhafte Nachrichten effektiv zu behandeln, bietet Azure Service Bus Dead-Lettering-Funktionen, mit denen problematische Nachrichten automatisch in eine separate Warteschlange zur Analyse und Fehlerbehebung verschoben werden können. Darüber hinaus bietet es flexible Wiederholungsrichtlinien, die es Entwicklern ermöglichen, automatische Wiederholungsversuche mit exponentiellen Back-Off-Strategien zu konfigurieren und so die Widerstandsfähigkeit von Anwendungen bei vorübergehenden Ausfällen zu erhöhen.

  4. Partitionierung und Skalierung: Azure Service Bus unterstützt die Partitionierung von Messaging-Entitäten, um die Arbeitslast auf mehrere Knoten zu verteilen und so horizontale Skalierbarkeit und hohen Durchsatz zu gewährleisten. Diese Fähigkeit ist entscheidend für die Verarbeitung großer Nachrichtenmengen und die Anpassung an schwankende Arbeitslasten ohne Beeinträchtigung der Leistung oder Zuverlässigkeit.

  5. Integration in das Azure-Ökosystem: Azure Service Bus lässt sich nahtlos mit anderen Azure-Diensten wie Azure Functions, Logic Apps, Event Grid und Azure Kubernetes Service integrieren(AKS)und ermöglicht es Entwicklern, mühelos End-to-End-Lösungen zu erstellen. Ob es um das Auslösen von serverlosen Funktionen als Reaktion auf eingehende Nachrichten oder die Orchestrierung komplexer Workflows mit Logic Apps geht, Azure Service Bus dient als Dreh- und Angelpunkt für den Aufbau robuster, ereignisgesteuerter Architekturen.

Einführung in IronPDF

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 1

IronPDF ist eine leistungsstarke C#-PDF-Bibliothek, mit der Sie in .NET-Projekten PDF-Dokumente erzeugen, bearbeiten und Inhalte daraus extrahieren können. Hier sind einige der wichtigsten Merkmale:

  1. HTML zu PDF Konvertierung:

    • Konvertieren Sie HTML-, CSS- und JavaScript-Inhalte in das PDF-Format.

    • Verwenden Sie die Chrome Rendering Engine für pixelgenaue PDFs.

    • Generieren Sie PDFs aus URLs, HTML-Dateien oder HTML-Strings.
  2. Bild- und Inhaltskonvertierung:

    • Konvertieren Sie Bilder in und aus PDF.

    • Extrahieren Sie Text und Bilder aus vorhandenen PDF-Dateien.

    • Unterstützung für verschiedene Bildformate.
  3. Bearbeitung und Manipulation:

    • Legen Sie Eigenschaften, Sicherheit und Berechtigungen für PDFs fest.

    • Digitale Signaturen hinzufügen.

    • Bearbeiten Sie die Metadaten und den Revisionsverlauf.
  4. Plattformübergreifende Unterstützung:

    • Arbeitet mit .NET Core(8, 7, 6, 5 und 3.1+), .NET-Standard(2.0+)und .NET-Framework(4.6.2+).

    • Kompatibel mit Windows, Linux und macOS.

    • Verfügbar über NuGet für eine einfache Installation.

Erzeugen eines PDF-Dokuments mit IronPDF und Azure.Messaging.ServiceBus

Erstellen Sie zunächst eine Konsolenanwendung mit Visual Studio (siehe unten).

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 2

Geben Sie den Projektnamen an

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 3

.NET-Version bereitstellen

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 4

Installieren Sie dieIronPDF-Paket.

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 5

Azure Service Bus erstellen

Erstellen Sie einen Namespace mit einem eindeutigen Namen für Azure. Ein Namespace ist ein Container für Service Bus-Ressourcen wie Warteschlangen und Themen innerhalb Ihrer Anwendung.

So erstellen Sie einen Namespace:

  1. Melden Sie sich beim Azure-Portal an.

  2. Gehen Sie auf die Seite "Alle Dienste".

  3. Wählen Sie im linken Navigationsbereich "Integration" aus der Kategorienliste.

  4. Bewegen Sie den Mauszeiger über "Service Bus" und klicken Sie auf die Schaltfläche "+" auf der Kachel "Service Bus".

    Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 6

    Gehen Sie folgendermaßen vor, um die Registerkarte Grundlagen auf der Seite Namespace erstellen zu konfigurieren:

  5. Abonnement: Wählen Sie das Azure-Abonnement aus, in dem Sie den Namespace erstellen möchten.

  6. Ressourcengruppe: Wählen Sie eine bestehende Ressourcengruppe, in der sich der Namensraum befinden soll, oder erstellen Sie eine neue Gruppe.

  7. Namensraumname: Geben Sie einen Namen für den Namespace ein. Stellen Sie sicher, dass der Name die folgenden Kriterien erfüllt:

    • Muss in Azure eindeutig sein.

    • Die Länge muss zwischen 6 und 50 Zeichen liegen.

    • Darf nur Buchstaben, Zahlen und Bindestriche "-" enthalten.

    • Muss mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Zahl enden.

    • Kann nicht mit "-sb" oder "-mgmt" enden.
  8. Standort: Wählen Sie die Region, in der Ihr Namespace gehostet werden soll.

  9. Preisstufe: Wählen Sie die Preisstufe(Basis, Standard oder Premium) für den Namespace. Für dieses Beispiel wählen Sie Standard.

  10. Wählen Sie unten auf der Seite Prüfen + Erstellen.

    Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 7

  11. Wählen Sie auf der Seite Überprüfen + Erstellen die Option Erstellen.

  12. Wenn die Bereitstellung der Ressource erfolgreich war, Gehen Sie zur Ressource.

    Sie sehen die Homepage für Ihren Service Bus-Namensraum.

Erstellen von Service-Bus-Warteschlangen im Azure-Portal

Gehen Sie folgendermaßen vor, um eine Warteschlange in Ihrem Servicebus-Namensraum einzurichten:

  1. Navigieren Sie zu Warteschlangen: Gehen Sie im Azure-Portal auf die Seite Service Bus Namespace. Wählen Sie "Warteschlangen" aus dem linken Navigationsmenü.

  2. Neue Warteschlange erstellen: Klicken Sie auf der Seite Warteschlangen auf die Schaltfläche "+ Warteschlange" in der Symbolleiste.

  3. Warteschlange konfigurieren: Geben Sie einen Namen für Ihre Warteschlange in das vorgesehene Feld ein. Belassen Sie die anderen Einstellungen auf ihren Standardwerten. Die Optionen, die Sie beim Erstellen einer Azure Service Bus-Warteschlange konfigurieren müssen:

    1. Name: Dies ist der eindeutige Bezeichner für Ihre Warteschlange. Wählen Sie einen Namen, der beschreibend und leicht zu merken ist.

    2. Max Queue Size: Hier wird die maximale Speicherkapazität der Warteschlange angegeben. Sie können sie auf 1 GB, 2 GB, 5 GB, 10 GB, 20 GB, 40 GB, 80 GB oder 100 GB einstellen. In Ihrem Fall ist er auf 1 GB eingestellt.

    3. Max Delivery Count: Gibt an, wie oft eine Nachricht maximal zugestellt werden kann, bevor sie in die Warteschlange für unzustellbare Nachrichten verschoben oder verworfen wird. Dies hilft bei der Behandlung von Fehlern in der Nachrichtenverarbeitung.

    4. Message Time to Live(TTL): Damit wird festgelegt, wie lange eine Nachricht in der Warteschlange verbleibt, bevor sie abläuft. Sie können dies in Tagen, Stunden, Minuten und Sekunden einstellen. Sobald die TTL erreicht ist, werden die "Dead Letter"-Nachrichten entweder verworfen oder in die "Dead Letter"-Warteschlange verschoben, wenn "Dead Lettering" aktiviert ist.

    5. Lock Duration: Dies ist die Zeitspanne, in der eine Nachricht für die Verarbeitung durch einen Empfänger gesperrt ist. Während dieser Zeit können andere Empfänger die gleiche Nachricht nicht verarbeiten. Sie können diese Dauer in Tagen, Stunden, Minuten und Sekunden angeben.

    6. Dead Lettering bei Ablauf der Nachricht aktivieren: Wenn aktiviert, werden Nachrichten, die ablaufen(d.h. ihre TTL überschreiten) werden in die Warteschlange für tote Briefe verschoben, anstatt verworfen zu werden. Dies ermöglicht eine weitere Überprüfung und Behandlung abgelaufener Nachrichten.

    7. Partitionierung aktivieren: Diese Option ermöglicht die Partitionierung der Warteschlange auf mehrere Message-Broker, was die Skalierbarkeit und den Durchsatz verbessern kann. Die Partitionierung ist nützlich für die Bearbeitung großer Mengen von Nachrichten.

    Mit diesen Einstellungen können Sie das Verhalten und die Leistung Ihrer Azure Service Bus-Warteschlange steuern und sicherstellen, dass sie die Anforderungen Ihrer Anwendung erfüllt.

    Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 8

  4. Erstellung abschließen: Klicken Sie auf die Schaltfläche "Erstellen", um die Erstellung der Warteschlange abzuschließen. Diese Schritte stellen sicher, dass Sie eine Warteschlange innerhalb Ihres Service Bus-Namensraums mithilfe des Azure-Portals erfolgreich erstellen.

    Installieren Sie Azure.Messaging.ServiceBus, eine Service-Bus-Client-Bibliothek, um eine Verbindung mit der Azure-Warteschlange über eine Verbindungszeichenfolge herzustellen.

    Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 9

    Fügen Sie den nachstehenden Code hinzu, um Nachrichten mit Azure.Messaging.ServiceBus zu senden und zu empfangen.

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#

Code Erläuterung

  1. Verbindungszeichenfolge und Warteschlangenname:

    • Die Variable "ConnectionString" enthält die Verbindungsdetails für Ihren Azure Service Bus-Namensraum. Sie gibt den Endpunkt, den gemeinsamen Zugriffsschlüssel und den Entitätspfad an(warteschlangenname).

    • Die Variable queName enthält den Namen der Service Bus-Warteschlange, mit der Sie arbeiten möchten.
  2. Demo-Setup:

    • Der Code beginnt mit dem Ausdruck einer Meldung: "Demo IronPDF mit Azure.Messaging.ServiceBus"

    • Es aktiviert die Web-Sicherheit mit Installation.EnableWebSecurity = true;.
  3. Erstellen eines Service Bus Client:

    • Der ServiceBusClient wird mit Hilfe der angegebenen Verbindungszeichenfolge erstellt.

    • Dieser Client ermöglicht Ihnen die Interaktion mit Service Bus Entitäten(warteschlangen, Themen, usw.).
  4. Nachricht senden:

    • Eine Nachricht mit dem Inhalt "IronPDF is Awesome Package" wird mit der Methode CreateSender an die angegebene Warteschlange gesendet.

    • Die Nachricht wird mit new ServiceBusMessage(msgText).

    • Der Zeitstempel der gesendeten Nachricht wird auf der Konsole ausgegeben.
  5. Empfang einer Nachricht:

    • Mit CreateReceiver wird ein Empfänger für dieselbe Warteschlange erstellt.

    • Der Code wartet auf Benutzereingaben(unter Verwendung von Console.Read()) um die Verarbeitung von Nachrichten zu simulieren.

    • Wenn eine Nachricht empfangen wird, werden ihre ID und ihr Inhalt auf der Konsole ausgegeben.
  6. Erzeugung einer PDF-Datei:

    • Der Renderer erstellt ein PDF aus dem HTML-Inhalt(einschließlich der gesendeten und empfangenen Nachrichten).

    • Die resultierende PDF-Datei wird als "AwesomeAzureServiceBusQueueAndIronPdf.pdf" gespeichert

Ausgabe

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 10

PDF

Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert): Abbildung 11

IronPDF-Lizenzierung

Das IronPDF-Paket erfordert eine Lizenz für die Ausführung und die Erstellung der PDF-Datei. Fügen Sie den unten stehenden Code am Anfang der Anwendung ein, bevor das Paket aufgerufen wird.

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

Eine Testlizenz ist erhältlich auf derIronPDF Testlizenz-Seite.

Schlussfolgerung

In einer Ära, die von digitaler Transformation und schnellen technologischen Fortschritten geprägt ist, erweist sich der Azure Service Bus als zentrale Komponente auf der Modernisierungsreise von Unternehmen weltweit. Durch die Bereitstellung zuverlässiger, skalierbarer und flexibler Messaging-Funktionen ermöglicht er Entwicklern die Entwicklung belastbarer und flexibler Lösungen, die sich an die sich verändernden Geschäftsanforderungen anpassen lassen.

Ganz gleich, ob es um nahtlose Integration, ereignisgesteuerte Architekturen oder asynchrone Kommunikation geht, Azure Service Bus spielt eine entscheidende Rolle bei der Förderung von Innovationen und der Beschleunigung digitaler Initiativen in verschiedenen Branchen.

Da Unternehmen weiterhin Cloud-native Paradigmen und verteilte Architekturen nutzen, ist Azure Service Bus ein Beleg für Microsofts Engagement, Entwickler und Unternehmen auf ihrem Weg in die Cloud zu unterstützen. IronPDF vereinfacht die PDF-Erzeugung in .NET-Anwendungen und bietet Flexibilität und Funktionalität für die Erstellung professioneller Dokumente direkt aus dem Code.

< PREVIOUS
WebGrease .NET Core (Wie es für Entwickler funktioniert)
NÄCHSTES >
Simple Injector C# (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.12 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,810,873 Lizenzen anzeigen >