Azure 事件中心 - 事件复制不适用于 Geo-DR:“此命名空间是辅助且只读的”

问题描述 投票:0回答:1

我尝试遵循以下文档:在启用异地灾难恢复时将事件从主集线器复制到辅助集线器。 我有一个别名,EVH-Primary 和 EVH-Secondary 都位于它后面。 EVH-Primary 处于活动状态; EVH-辅助是被动的。

我尝试通过侦听“复制”使用者组的 Azure 函数发送相同的事件来复制通过 EVH-Primary 的任何事件,除了将事件转发到 EVH-Secondary 之外不执行任何操作;但是,当我尝试这样做时,出现以下错误:

InvalidSignature:此命名空间是辅助且只读的。

如果辅助集线器始终是只读的,那么尝试将事件复制到它有什么意义呢? 难道是我的代码有问题?

这是我的 C#:

[Function(nameof(EventReplicationFunction))]
public async Task EventReplication([EventHubTrigger("%EventHubs:HubName%", Connection = "EventHubs", ConsumerGroup = "%EventHubsDR:ConsumerGroupReplication%")] 
    EventData[] eventDataCollection,
    FunctionContext context)
{
    try
    {
        if (!IsDrConfigured(logger) || !await IsSecondaryAsync()) return;            
       
        logger.LogInformation("{Method} - Received {EventBatchCount} events to replicate", nameof(EventReplicationFunction), eventDataCollection.Length);           

        var tasks = eventDataCollection.Select(async evt =>
        {
            evt.Properties["IsReplication"] = 1;
            var evhProducerClient = eventBufferClientFactory.CreateClient("Secondary");
            await evhProducerClient.EnqueueEventAsync(evt, context.CancellationToken);
        });

        await Task.WhenAll(tasks);
    }
    catch (OperationCanceledException)
    {
        if (context.CancellationToken.IsCancellationRequested)
        {
            logger.LogWarning("{Method} WARNING: Operation Canceled due to external cancellation request", nameof(EventReplicationFunction));
        }
        else
        {
            logger.LogWarning("{Method} WARNING: Operation Canceled", nameof(EventReplicationFunction));
        }
    }
    catch (Exception ex)
    {
        logger.LogError(ex, LogTemplateType.Error.ExceptionWithStrackTrace, nameof(EventReplicationFunction), ex.Message, ex.StackTrace);
    }
}
c# .net azure azure-functions azure-eventhub
1个回答
0
投票

InvalidSignature:此命名空间是辅助且只读的。

事件中心地理灾难仅适用于元数据灾难恢复,不适用于事件中心灾难恢复中的事件。地理灾难主要用于以下场景:您不想在发生灾难时更新不同应用程序中的连接字符串,并且可以节省使用所有事件中心/配置创建新命名空间并更新新连接字符串的时间。

  • 为了复制数据,您需要使用最近宣布的异地复制(公共预览版)
  • 您只需在给定区域中创建集群,这将允许您启用异地复制
  • 然后,您可以将次要区域提升为主要区域,如下所示。

enter image description here

enter image description here

参考文献 -

Azure 事件中心地理复制演示

© www.soinside.com 2019 - 2024. All rights reserved.