Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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 Bus, un servicio de mensajería en la nube, emerge como una solución robusta que permite a los desarrolladores construir aplicaciones escalables, desacopladas y resilientes. 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.
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 funciones de mensajería flexibles, incluidos mecanismos de cola y publicación/suscripción, para permitir una comunicación fluida entre componentes dispares de un sistema distribuido. Además, admite mensajes por lotes, lo que permite enviar varios mensajes sin superar la limitación de tamaño total.
Azure Service Bus ofrece las siguientes ventajas:
Desacoplamiento de Aplicaciones: Service Bus te permite separar aplicaciones y servicios entre sí. Este desacoplamiento mejora la fiabilidad y la escalabilidad.
Balanceo de Carga: Equilibra el trabajo entre los trabajadores competidores, asegurando una utilización eficiente de los recursos.
Transferencia de Mensajes: Los datos se transfieren entre aplicaciones y servicios usando mensajes. El cuerpo de estos mensajes puede contener varios tipos de datos, como JSON, XML o texto sin formato.
Escenarios de Mensajería: Los escenarios comunes incluyen la transferencia de datos comerciales (por ejemplo, órdenes de venta), el balanceo de carga y la habilitación de relaciones entre publicadores y suscriptores utilizando temas y suscripciones.
Transacciones: Service Bus admite transacciones atómicas, lo que permite múltiples operaciones dentro de un solo ámbito de transacción. Una transacción tendría múltiples llamadas concurrentes, mientras que un lote de mensajes tendría una única llamada.
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.
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.
Políticas de mensajes muertos y reintentos: Para manejar mensajes erróneos de manera efectiva, Azure Service Bus ofrece capacidades de mensajes muertos, permitiendo que los mensajes problemáticos se muevan automáticamente a una cola separada para 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.
Particionamiento y Escalamiento: Azure Service Bus admite la partición de entidades de mensajería para distribuir la carga de trabajo a través de múltiples nodos, asegurando 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.
IronPDF es una potente biblioteca de PDF en C# que te permite generar, editar y extraer contenido de documentos PDF en proyectos .NET. Estas son algunas de sus principales características:
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.
Conversión de Imágenes y Contenido:
Convierte imágenes a y desde PDF.
Extraiga texto e imágenes de PDF existentes.
Edición y Manipulación:
Establezca las propiedades, la seguridad y los permisos de los archivos PDF.
Añade firmas digitales.
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.
Para empezar, cree una aplicación de consola utilizando Visual Studio como se indica a continuación.
Nombre del proyecto
Proporcione la versión .NET
Instale el paquete IronPDF.
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:
Inicie sesión en el portal Azure.
Vaya a la página "Todos los servicios".
En el panel de navegación izquierdo, seleccione "Integración" en la lista de categorías.
Pase el ratón por encima de "Bus de servicio" y haga clic en el botón "+" del mosaico Bus de servicio.
Para configurar la pestaña Conceptos básicos en la página Crear espacio de nombres, siga estos pasos:
Suscripción: Selecciona la suscripción de Azure donde deseas crear el espacio de nombres.
Grupo de recursos: Elija un grupo de recursos existente donde se ubicará el espacio de nombres, o cree uno nuevo.
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.
Ubicación: Seleccione la región donde se debería alojar su espacio de nombres.
Nivel de precios: Elige el nivel de precios (Básico, Estándar o Premium) para el espacio de nombres. Para este ejemplo, seleccione Estándar.
Seleccione Revisar + Crear en la parte inferior de la página.
Seleccione Crear en la página Revisar + Crear.
Una vez que el despliegue del recurso sea exitoso, Vaya al recurso.
Verá la página de inicio de su espacio de nombres Service Bus.
Para configurar una cola en su espacio de nombres Service Bus, siga estos pasos:
Navegar a Colas: Dirígete a la página del Espacio de Nombres de Service Bus en el portal de Azure. Seleccione "Colas" en el menú de navegación de la izquierda.
Crear una nueva cola: En la página de Colas, haga clic en el botón "+ Cola" en la barra de herramientas.
Configurar cola: Ingrese un nombre para su cola en el campo proporcionado. Deje los demás ajustes con sus valores por defecto. Las opciones que debe configurar al crear una cola de Azure Service Bus:
Nombre: Este es el identificador único para tu cola. Elija un nombre descriptivo y fácil de recordar.
Tamaño máximo de cola: Esto 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. Para su caso, está configurado en 1 GB.
Conteo Máximo de Entrega: Esto especifica el número máximo de veces que un mensaje puede ser entregado antes de ser enviado a la cola de mensajes muertos o descartado. Esto ayuda a gestionar los fallos en el procesamiento de mensajes.
Tiempo de Vida del Mensaje (TTL): Esto determina cuánto tiempo permanece un mensaje en la cola antes de que caduque. 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.
Duración del Bloqueo: Esta es la cantidad de 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.
Habilitar Colas de Mensajes No Entregados al Expirar el Mensaje: Cuando está habilitado, los mensajes que expiran (es decir, superan su TTL) se trasladan a la cola de mensajes no entregados en lugar de ser descartados. Esto permite inspeccionar y tratar más a fondo los mensajes caducados.
Estos ajustes le ayudan a controlar el comportamiento y el rendimiento de su cola de Azure Service Bus, garantizando que cumpla los requisitos de su aplicación.
Completar Creación: Haz 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 Service Bus, para conectarse a la cola de Azure mediante una cadena de conexión.
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");
}
}
}
Cadena de conexión y nombre de la cola:
La variable connectionString
contiene los detalles de conexión para tu espacio de nombres de Azure Service Bus. Especifica el punto de conexión, la clave de acceso compartida y la ruta de la entidad (nombre de la cola).
queName
contiene el nombre de la cola del Service Bus con la que deseas trabajar.Configuración de demostración:
El código comienza imprimiendo un mensaje: "Demo IronPDF con Azure.Messaging.ServiceBus"
Installation.EnableWebSecurity = true;
.Creando un Cliente de Service Bus:
El ServiceBusClient
se crea utilizando la cadena de conexión proporcionada.
Enviando un mensaje:
Un mensaje con el contenido "IronPDF is Awesome Package" se envía a la cola especificada utilizando el método CreateSender
.
El mensaje se crea utilizando new ServiceBusMessage(msgText)
.
Recibiendo un mensaje:
Un receptor se crea para la misma cola usando CreateReceiver
.
El código espera la entrada del usuario (usando Console.Read()
) para simular el procesamiento de mensajes.
Generando un PDF:
El renderizador crea un PDF a partir del contenido HTML (incluidos los mensajes enviados y recibidos).
El paquete IronPDF requiere una licencia para ejecutarse y generar el PDF. Añada el código siguiente al inicio de la aplicación antes de acceder al paquete.
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
Una licencia de prueba está disponible en la Página de Licencia de Prueba de IronPDF.
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 aplicaciones .NET, ofreciendo flexibilidad y funcionalidad para crear documentos de calidad profesional directamente desde el código.