AYUDA .NET

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona)

Actualizado agosto 13, 2024
Compartir:

En el interconectado panorama digital actual, la comunicación eficaz es la piedra angular del éxito de las empresas. Tanto si se trata de transmitir datos críticos entre aplicaciones como de garantizar actualizaciones en tiempo real a través de sistemas distribuidos, es indispensable contar con una infraestructura de mensajería fiable.

Azure Service Busun servicio de mensajería basado en la nube, surge como una solución sólida que permite a los desarrolladores crear aplicaciones escalables, desacopladas y resistentes. Adentrémonos en el ámbito de Azure Service Bus para comprender su importancia y explorar sus innumerables capacidades. Más adelante en este artículo, también analizaremos IronPDF para gestionar, generar y leer documentos PDF.

Entender Azure Service Bus

Azure Service Bus es un intermediario de mensajes de integración empresarial totalmente gestionado que facilita la comunicación fiable entre aplicaciones y servicios, ya se ejecuten en la nube, en las instalaciones o en entornos híbridos.

Proporciona capacidades de mensajería flexibles, incluidos mecanismos de colas y publicación/suscripción, para permitir una comunicación fluida entre componentes dispares de un sistema distribuido; además, permite mensajes por lotes, que permiten múltiples mensajes sin exceder la restricción de tamaño total.

Azure Service Bus ofrece las siguientes ventajas:

  1. Desacoplamiento de aplicaciones: Service Bus permite separar aplicaciones y servicios entre sí. Este desacoplamiento mejora la fiabilidad y la escalabilidad.

  2. Equilibrio de la carga: Equilibra el trabajo entre los trabajadores que compiten entre sí, garantizando una utilización eficiente de los recursos.

  3. Transferencia de mensajes: Los datos se transfieren entre aplicaciones y servicios mediante mensajes. El cuerpo de estos mensajes puede contener varios tipos de datos, como JSON, XML o texto sin formato.

  4. Escenarios de mensajería: Los escenarios comunes incluyen la transferencia de datos empresariales (por ejemplo, pedidos de venta)el uso de temas y suscripciones permite equilibrar la carga y establecer relaciones entre editores y suscriptores.

  5. Transacciones: Service Bus soporta transacciones atómicas, permitiendo múltiples operaciones dentro del ámbito de una única transacción. Una transacción tendría múltiples llamadas concurrentes, mientras que un lote de mensajes tendría una única llamada.

  6. Sesiones de mensajes: Facilita la coordinación a gran escala de flujos de trabajo y transferencias ordenadas de mensajes.

Principales características y funciones

  1. Colas y temas: Azure Service Bus ofrece tanto colas como temas como canales de comunicación. Las colas permiten la comunicación punto a punto, garantizando que cada mensaje sea procesado por un solo receptor, lo que las hace ideales para la distribución de la carga de trabajo y los escenarios de nivelación de carga. Por otro lado, los temas admiten patrones de mensajería de publicación/suscripción, lo que permite que varios suscriptores reciban mensajes relevantes de forma independiente y facilita arquitecturas escalables basadas en eventos.

  2. Entrega de mensajes fiable: Con Azure Service Bus, la entrega de mensajes es inherentemente fiable. Garantiza la persistencia de los mensajes, puede configurar el gestor de mensajes y errores, la tolerancia a fallos y la semántica de entrega al menos una vez, lo que minimiza el riesgo de pérdida o duplicación de datos. Además, admite transacciones, lo que permite realizar operaciones atómicas a través de múltiples mensajes, garantizando así la integridad de los datos.

  3. **Para gestionar los mensajes erróneos de forma eficaz, Azure Service Bus proporciona funciones de "letra muerta", lo que permite que los mensajes problemáticos se muevan automáticamente a una cola separada para su análisis y solución de problemas. Además, ofrece políticas de reintento flexibles, lo que permite a los desarrolladores configurar reintentos automáticos con estrategias de retroceso exponencial, mejorando la resistencia de las aplicaciones ante fallos transitorios.

  4. Partición y escalado: Azure Service Bus admite la partición de entidades de mensajería para distribuir la carga de trabajo entre varios nodos, lo que garantiza la escalabilidad horizontal y un alto rendimiento. Esta capacidad es crucial para gestionar grandes volúmenes de mensajes y acomodar cargas de trabajo fluctuantes sin comprometer el rendimiento ni la fiabilidad.

  5. Integración con el ecosistema Azure: Azure Service Bus se integra a la perfección con otros servicios Azure, como Azure Functions, Logic Apps, Event Grid y Azure Kubernetes Service (AKS)que permite a los desarrolladores crear soluciones integrales con facilidad. Tanto si se trata de activar funciones sin servidor en respuesta a mensajes entrantes como de orquestar flujos de trabajo complejos mediante Logic Apps, Azure Service Bus sirve de eje para crear arquitecturas sólidas basadas en eventos.

Introducción a IronPDF

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 1

IronPDF es una potente biblioteca PDF en C# que permite generar, editar y extraer contenido de documentos PDF en proyectos .NET. Estas son algunas de sus principales características:

  1. Conversión de HTML a PDF:

    • Convierte contenidos HTML, CSS y JavaScript a formato PDF.

    • Utiliza el motor de renderizado de Chrome para obtener PDF perfectos.
    • Genere PDF a partir de URL, archivos HTML o cadenas HTML.
  2. Conversión de imágenes y contenidos:

    • Convierte imágenes a y desde PDF.

    • Extraiga texto e imágenes de PDF existentes.
    • Compatible con varios formatos de imagen.
  3. Edición y manipulación:

    • Establezca las propiedades, la seguridad y los permisos de los archivos PDF.

    • Añade firmas digitales.
    • Editar metadatos e historial de revisiones.
  4. Soporte multiplataforma:

    • Funciona con .NET Core (8, 7, 6, 5 y 3.1+.).NET Standard (2.0+)y .NET Framework (4.6.2+).

    • Compatible con Windows, Linux y macOS.
    • Disponible en NuGet para facilitar la instalación.

Generar un documento PDF usando IronPDF y Azure.Messaging.ServiceBus

Para empezar, cree una aplicación de consola utilizando Visual Studio como se indica a continuación

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 2

Nombre del proyecto

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 3

Proporcione la versión .NET

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 4

Instale el IronPDF paquete

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 5

Creación de Azure Service bus

Cree un espacio de nombres con un nombre único en Azure. Un espacio de nombres es un contenedor para los recursos del Bus de Servicios como colas y temas dentro de su aplicación.

A continuación se explica cómo crear un espacio de nombres:

  1. Inicie sesión en el portal Azure.

  2. Vaya a la página "Todos los servicios".

  3. En el panel de navegación izquierdo, seleccione "Integración" en la lista de categorías.

  4. Pase el ratón por encima de "Bus de servicio" y haga clic en el botón "+" del mosaico Bus de servicio.

    Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 6

    Para configurar la etiqueta Básico en la página Crear espacio de nombres, siga estos pasos:

  5. Suscripción: Seleccione la suscripción de Azure en la que desea crear el espacio de nombres.

  6. Grupo de recursos: Elija un grupo de recursos existente donde se ubicará el espacio de nombres o cree uno nuevo.

    1. Nombre del espacio de nombres: Introduzca un nombre para el espacio de nombres. Asegúrese de que el nombre cumple los siguientes criterios:

      • Debe ser único en Azure.

      • La longitud debe estar comprendida entre 6 y 50 caracteres.

      • Sólo puede contener letras, números y guiones "-".

      • Debe empezar por una letra y terminar por una letra o un número.
    • No puede terminar con "-sb" o "-mgmt".
  7. Ubicación: Seleccione la región en la que debe alojarse su espacio de nombres.

  8. Nivel de precios: Elija el nivel de precios (Básico, Estándar o Premium) para el espacio de nombres. Para este ejemplo, seleccione Estándar.

    1. Seleccione Revisar + Crear en la parte inferior de la página.

    Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 7

  9. Seleccione Crear En la página Revisar + Crear.

  10. Una vez que el despliegue del recurso se haya realizado correctamente, Vaya al recurso.

    Verá la página de inicio de su espacio de nombres de bus de servicio.

Crear colas de bus de servicio en el portal Azure

Para configurar una cola en su espacio de nombres Service Bus, siga estos pasos:

  1. Navegue hasta Colas: Vaya a la página Service Bus Namespace en el portal Azure. Seleccione "Colas" en el menú de navegación de la izquierda.

  2. 2. Crear una nueva cola: En la página Colas, haga clic en el botón "+ Cola" de la barra de herramientas.3. Configurar cola**: Introduzca un nombre para su cola en el campo correspondiente. Deje los demás ajustes con sus valores por defecto. Las opciones que debe configurar al crear una cola de Azure Service Bus:

  3. Nombre: Este es el identificador único para su cola. Elija un nombre descriptivo y fácil de recordar.

  4. Tamaño máximo de la cola: Define la capacidad máxima de almacenamiento de la cola. Puedes configurarlo en 1 GB, 2 GB, 5 GB, 10 GB, 20 GB, 40 GB, 80 GB o 100 GB. En tu caso, está ajustado a 1 GB.

  5. Recuento máximo de entregas: Especifica el número máximo de veces que se puede entregar un mensaje antes de enviarlo a la cola de mensajes muertos o descartarlo. Esto ayuda a gestionar los fallos en el procesamiento de mensajes.

  6. Mensaje time to live (TTL): Determina el tiempo que un mensaje permanece en la cola antes de caducar. Puede configurarlo en días, horas, minutos y segundos. Una vez alcanzado el TTL, los mensajes de letra muerta se descartan o se mueven a la cola de letra muerta si ésta está activada.

  7. Duración del bloqueo: Es el tiempo que un mensaje está bloqueado para ser procesado por un receptor. Durante este tiempo, otros receptores no pueden procesar el mismo mensaje. Puede establecer esta duración en días, horas, minutos y segundos.

  8. Habilitar letra muerta al expirar el mensaje: Cuando se activa, los mensajes que caducan (es decir, superan su TTL) se mueven a la cola de letras muertas en lugar de ser descartadas. Esto permite inspeccionar y tratar más a fondo los mensajes caducados.

  9. Activar partición: Esta opción permite la partición de la cola entre varios agentes de mensajes, lo que puede mejorar la escalabilidad y el rendimiento. La partición es útil para manejar grandes volúmenes de mensajes.

    Estos ajustes le ayudan a controlar el comportamiento y el rendimiento de su cola de Azure Service Bus, garantizando que cumple los requisitos de su aplicación

    Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 8

  10. Creación finalizada: Haga clic en el botón "Crear" para finalizar la creación de la cola. Estos pasos garantizan la creación correcta de una cola dentro de su espacio de nombres de Service Bus mediante el portal de Azure.

    Instale Azure.Messaging.ServiceBus una biblioteca de cliente de bus de servicio para conectarse a la cola de Azure utilizando una cadena de conexión.

    Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 9

    Añade el siguiente código para enviar y recibir mensajes utilizando 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#

Código Explicación

  1. Cadena de conexión y nombre de la cola:

    • La variable connectionString contiene los detalles de conexión para su espacio de nombres Azure Service Bus. Especifica el punto final, la clave de acceso compartida y la ruta de la entidad (nombre de la cola).
    • La variable queName contiene el nombre de la cola del Bus de Servicios con la que se desea trabajar.
    1. Demo Setup:

      • El código comienza imprimiendo un mensaje: "Demo IronPDF con Azure.Messaging.ServiceBus"
    • Habilita la seguridad web mediante Installation.EnableWebSecurity = true;.
  2. Creación de un cliente de bus de servicios:

    • El ServiceBusClient se crea utilizando la cadena de conexión proporcionada.
    • Este cliente permite interactuar con las entidades del Bus de Servicios (colas, temas, etc.).
  3. Enviar un mensaje:

    • Se envía un mensaje con el contenido "IronPDF is Awesome Package" a la cola especificada mediante el método CreateSender.

    • El mensaje se crea utilizando new ServiceBusMessage(msgText).
    • La marca de tiempo del mensaje enviado se imprime en la consola.
  4. Recibir un mensaje:

    • Se crea un receptor para la misma cola mediante CreateReceiver.

    • El código espera la entrada del usuario (usando Console.Read()) para simular el procesamiento de mensajes.
    • Cuando se recibe un mensaje, su ID y cuerpo se imprimen en la consola.
  5. Generar un PDF:

    • El renderizador crea un PDF a partir del contenido HTML (incluidos los mensajes enviados y recibidos).
    • El PDF resultante se guarda como "AwesomeAzureServiceBusQueueAndIronPdf.pdf"

Salida

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 10

PDF

Azure.Messaging.ServiceBus Ejemplo C# (Cómo Funciona): Figura 11

Licencias IronPDF

El paquete IronPDF requiere una licencia para ejecutarse y generar el PDF. Añade el siguiente código al inicio de la aplicación antes de acceder al paquete.

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

Hay disponible una licencia de prueba aquí.

Conclusión

En una era caracterizada por la transformación digital y los rápidos avances tecnológicos, Azure Service Bus emerge como un componente fundamental en el viaje de modernización de las empresas de todo el mundo. Al proporcionar capacidades de mensajería fiables, escalables y flexibles, permite a los desarrolladores crear soluciones resistentes y ágiles que pueden adaptarse a los cambiantes requisitos empresariales.

Ya sea facilitando una integración perfecta, permitiendo arquitecturas basadas en eventos o garantizando la comunicación asíncrona, Azure Service Bus desempeña un papel transformador en el impulso de la innovación y la aceleración de las iniciativas digitales en todos los sectores.

A medida que las organizaciones continúan adoptando paradigmas nativos de la nube y arquitecturas distribuidas, Azure Service Bus se erige como un testimonio del compromiso de Microsoft para capacitar a los desarrolladores y las empresas en su viaje a la nube. IronPDF simplifica la generación de PDF dentro de las aplicaciones .NET, ofreciendo flexibilidad y funcionalidad para crear documentos de calidad profesional directamente desde el código.

< ANTERIOR
WebGrease .NET Core (Cómo funciona para desarrolladores)
SIGUIENTE >
Simple Injector C# (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 10,516,730 View Licenses >