簡體   English   中英

天藍色存儲事件可以用於網絡農場嗎

[英]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 結合使用。 我為另一個項目做過這樣的事情,非常可擴展且接近實時。

使用 SignalR 服務和 Azure 函數從 Cosmos DB 廣播實時更新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM