在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在當今互聯的數位環境中,效率高的溝通是成功企業的基石。無論是應用程式之間傳遞重要數據,還是在分佈式系統中確保即時更新,可靠的消息傳遞基礎設施都是不可或缺的。
Azure 服務匯流排, 一個基於雲的消息服務,作為一個強大的解決方案,使開發人員能夠構建可擴展、解耦和具有彈性的應用程式。讓我們深入了解 Azure Service Bus 的重要性並探索其眾多功能。稍後在本文中,我們還將探討 IronPDF 管理、生成和閱讀 PDF 檔案。
Azure Service Bus 是一個完全托管的企業集成消息代理,可促進應用程式和服務之間的可靠通信,不論它們是在雲端、內部部署還是混合環境中運行。
它提供靈活的消息功能,包括排隊和發布/訂閱機制,以實現分佈式系統中不同組件之間的無縫通信,此外,它允許批量消息,這樣可以在不超過總大小限制的情況下傳遞多條消息。
Azure Service Bus 提供以下好處:
消息場景:常見場景包括傳輸業務數據 (例如,銷售訂單), 負載均衡,以及使用題目和訂閱來啟用發布者和訂閱者之間的關係。
事務: Service Bus 支援原子事務,允許在單一事務範圍內進行多個操作。事務會有多個併發呼叫,而訊息批次只會有單一呼叫。
佇列和主題: Azure Service Bus 提供佇列和主題作為通訊管道。佇列使點對點通信成為可能,確保每個消息都由唯一的接收方處理,非常適合工作負載分配和負載平衡場景。另一方面,主題支持發佈/訂閱消息模式,允許多個訂閱者獨立接收相關消息,有助於擴展事件驅動的架構。
可靠的消息傳遞: 使用 Azure Service Bus,消息傳遞本質上是可靠的。它確保消息持久性,可以配置消息和錯誤處理程序,容錯和至少一次傳遞語義,最大限度地減少數據丟失或重複的風險。此外,它支持事務,允許跨多個消息進行原子操作,從而確保數據完整性。
死信和重試策略: 為了有效處理錯誤消息,Azure Service Bus 提供死信功能,允許問題消息自動移至單獨的佇列以進行分析和故障排除。此外,它提供靈活的重試策略,使開發人員能夠配置具有指數回退策略的自動重試,增強應用程序在面臨短暫故障時的韌性。
分區和擴展: Azure Service Bus 支持消息實體的分區,以將工作負載分佈在多個節點之間,確保水平擴展和高吞吐量。這一功能對於處理大量消息和適應波動的工作負載至關重要,而不會影響性能或可靠性。
IronPDF 是一個強大的C# PDF庫,可讓您在.NET專案中生成、編輯和提取PDF文件的內容。以下是一些主要功能:
HTML到PDF轉換:
將HTML、CSS和JavaScript內容轉換為PDF格式。
使用Chrome渲染引擎生成像素完美的PDF。
圖片和內容轉換:
圖片轉換到PDF和從PDF轉換圖片。
從現有PDF中提取文字和圖片。
編輯和操作:
設置PDF的屬性、安全性和權限。
添加數位簽名。
跨平台支持:
支持.NET Core (8, 7, 6, 5, 和 3.1+).NET Standard (2.0+),和 .NET Framework (4.6.2+).
首先,使用 Visual Studio 创建一个控制台应用程序,如下所示
提供專案名稱
提供 .NET 版本
安裝 IronPDF 套件
創建一個在 Azure 上具有唯一名稱的命名空間。命名空間是應用程式中 Service Bus 資源(如隊列和主題)的容器。
以下是創建命名空間的方法:
在「建立命名空間」頁面上配置基本標籤,請按以下步驟操作:
訂用帳戶:選擇您想要建立命名空間的 Azure 訂用帳戶。
資源群組:選擇一個現有的資源群組以放置命名空間,或建立一個新的資源群組。
命名空間名稱:輸入命名空間的名稱。確保名稱符合以下條件:
必須在 Azure 中具有唯一性。
長度必須在 6 到 50 個字符之間。
只能包含字母、數字和連字符「-」。
必須以字母開始並以字母或數字結束。
位置:選擇您的命名空間應託管的區域。
定價層:選擇定價層 (基本、標準、 高級) 選擇命名空間。對於此範例,請選擇標準。
在 檢閱 + 建立 頁面上選擇建立。
您會看到服務匯流排命名空間的主頁。
要在你的服務匯流排命名空間中設置佇列,請按照以下步驟操作:
導航到佇列:前往 Azure 入口網站中的服務匯流排命名空間頁面。從左側導航選單中選擇「佇列」。
建立新佇列:在佇列頁面上,點擊工具欄上的「+ 佇列」按鈕。
配置佇列:在提供的欄位中輸入你的佇列名稱。其餘設置保持默認值。在建立 Azure 服務匯流排佇列時需要配置的選項:
名稱:這是你佇列的唯一標識符。選擇一個描述性且易於記住的名稱。
最大佇列大小:這定義了佇列的最大存儲容量。可以設置為 1 GB、2 GB、5 GB、10 GB、20 GB、40 GB、80 GB 或 100 GB。針對本例,設置為 1 GB。
最大投遞次數:這指定了一條消息在被送至死信佇列或被丟棄之前最多可被投遞的次數。這有助於處理消息處理失敗的情況。
鎖定持續時間:這是消息被接收者鎖定以進行處理的時間。在這段時間內,其他接收者無法處理同一條消息。您可以設定這段時間的天數、時數、分數和秒數。
消息過期時啟用死信處理:啟用後,過期的消息 (即,超出了他們的TTL) 移至死信佇列而不是被丟棄。這允許對過期訊息進行進一步檢查和處理。
這些設置幫助您控制 Azure Service Bus 佇列的行為和性能,確保其符合應用程序的要求。
安裝 Azure.Messaging.ServiceBus,一個服務總線客戶端庫,以使用連接字串連接到 Azure 隊列。
將以下代碼添加到使用 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
連接字串和佇列名稱:
演示設置:
創建服務匯流排用戶端:
發送訊息:
使用 CreateSender 方法將內容為「IronPDF is Awesome Package」的訊息發送到指定的佇列。
接收訊息:
渲染器根據HTML內容創建PDF (包括已發送和已接收的訊息).
IronPDF 套件需要授權才能執行和生成 PDF。在應用程式開始訪問套件之前,請在應用程式的開頭添加以下程式碼。
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
提供試用許可證 這裡.
在以數位轉型和快速技術進步為特徵的時代,Azure Service Bus 成為全球企業現代化旅程中的關鍵組件。通過提供可靠、可擴展和靈活的消息傳遞功能,它使開發人員能夠設計出具彈性和敏捷性的解決方案,適應不斷變化的業務需求。
無論是促進無縫整合、啟用事件驅動架構,還是確保異步通信,Azure Service Bus 在推動創新和加速各行各業的數位計畫中都扮演著變革性的角色。
隨著組織繼續採用雲原生模式和分布式架構,Azure Service Bus 展現出微軟致力於在邁向雲端旅程中賦能開發人員和企業的承諾。 IronPDF 在 .NET 應用程式中簡化 PDF 生成,提供靈活性和功能性,直接從代碼創建專業級文檔。