[英]can azure storage events be used for web farm
我想知道是否有人在網絡場設置中使用過事件網格訂閱(在 blob 存儲上)。
我使用混合連接在 blob 存儲上創建了一個事件網格訂閱。
如果您有多個(偵聽器)應用程序,您能否配置一個可以“命中”每個應用程序的事件網格訂閱?
Azure 事件網格是一種發布/訂閱模型,用於根據訂閱者的訂閱(例如邏輯連接元數據)向訂閱者推送(分發)事件。 換句話說,此 Pub/Sub 模型上沒有偵聽器。
在您的方案中,來自事件驅動的 blob 存儲的事件通過混合連接推送到 Azure 中繼服務。 請注意,混合連接在端口 443 上使用帶有 SSL (https) 的 Websocket。 可以在此處找到有關 Azure 中繼混合連接協議的更多詳細信息。
基於此協議,同一 Azure 中繼混合連接上的接收器將保持平衡,換句話說,Azure 中繼混合連接不支持 UDP 端口。
您的方案(事件消息廣播)的解決方案是使用EventGridTrigger函數和SignalR 服務輸出綁定作為事件驅動的 blob 存儲的訂閱者。
更新:
以下屏幕片段顯示了基於與 EventGridTrigger 功能集成的 AEG 和 SignalR 服務將事件從 blob 存儲廣播到網絡場服務器:
對函數使用SignalRService擴展非常簡單,請參見以下示例:
#r "Microsoft.Azure.WebJobs.Extensions.SignalRService"
using Microsoft.Azure.WebJobs.Extensions.SignalRService;
public static async Task Run(string eventGridEvent, IAsyncCollector<SignalRMessage> signalRMessages, ILogger log)
{
log.LogInformation(eventGridEvent);
await signalRMessages.AddAsync(
new SignalRMessage
{
Target = "Broadcasting",
Arguments = new[] {eventGridEvent }
});
}
和function.json:
{
"bindings": [
{
"type": "eventGridTrigger",
"name": "eventGridEvent",
"direction": "in"
},
{
"type": "signalR",
"name": "signalRMessages",
"hubName": "mySignalRHubName",
"connectionStringSetting": "AzureSignalRConnectionString",
"direction": "out"
}
],
"disabled": false
}
如果您不習慣使用 Azure 表,另一種選擇是將 Cosmos DB 與 Azure Functions 和 SignalR 結合使用。 我為另一個項目做過這樣的事情,非常可擴展且接近實時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.