码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Azure 事件中心】Azure Event Hub 新功能尝试 -- 异地灾难恢复 (Geo-Disaster Recovery)


    问题描述

    关于Event Hub(事件中心)的灾备方案,大多数就是新建另外一个备用的Event Hub,当主Event Hub出现不可用的情况时,就需要切换到备Event Hub上。 而在切换的过程中,难点在于如何让客户端应用无感知的切换到备份Event Hub,以前的方案有两种:

    1:在自己DNS服务器中,配置DNS别名。然后在应用代码中,需要先根据DNS别名查询到正确的Event Hub域名。实现方式:https://docs.azure.cn/zh-cn/event-hubs/event-hubs-federation-patterns#dns-based-failover-configuration

    2:在应用的配置文件中,修改Event Hub的链接字符串。

     

    第一种方式需要自己配置DNS服务,并且在应用程序代码中需要加入根据DNS别名查找Event Hub域名的操作,操作复杂。 第二种方式,需要在修改应用配置文件,导致应用需要重启,或者是修改很多配置文件。

    现在,Event Hub主动推出了异地灾难恢复( Geo-Disaster Recovery)功能,它旨在让用户能够更轻松地从如此大规模的灾难中恢复,且无需更改应用程序配置。关键内容见下图红色区域。

    所以,本文主要的操作就是根据此文档,启用Geo-Disaster Recovery功能。并通过手动执行Failover来验证 主备 Event Hub能顺利的接收消息。 

     

    验证步骤

    第一步: 根据文档,启用Geo-Disaster Recovery 功能

    这一步的操作步骤, 执行简单,根据页面指引,一步一步完成即可。官网步骤:https://docs.azure.cn/zh-cn/event-hubs/event-hubs-geo-dr?tabs=portal#setup

    1. 如下图,进入Geo-Recovery页面,点击 Initiate Pairing。
    2. 在右侧出现的配置页面中,选择与当前Event Hub不同的区域,如 China North 3
    3. 然后选择新建一个Event Hub Namespace, 如 lbdiagnostictest02
    4. 最后,设置别名。这一步非常重要,因为当应用在使用Event Hub服务的连接字符串时,不在是使用服务原本的名称,而是此处设置的别名。 如 lbeventhubertest

    创建成功后,页面下显示内容为:

     

    第二步:在主Event Hub中添加新的消费组,同步查看次Event Hub中,验证是否已经同步配置信息。同时反向验证,先修改次Event Hub,查看主Event Hub是否同步信息

    首先,在本实验中,主Event Hub为 lbdiagnostictest01, 次Event Hub为 lbdiagnostictest02,对比两个Event Hub元数据。

    然后,在 主Event Hub 中添加一个 testdr 消费组,检查 次Event Hub 中是否自动添加。【答案是会自动添加】

    最后,在 次Event Hub 中添加一个 testdr2 消费组,再次检查 主Event Hub 中是否自动田间。【答案是不会自动添加】

     

    第三步:使用 Azure Service Bus Explorer 和Event Hub 的

    Azure Service Bus Explorer 工具的下载地址:https://github.com/paolosalvatori/ServiceBusExplorer/releases/download/5.0.7/ServiceBusExplorer-5.0.7.zip

    演示动画:

     

    第四步:在Event Hub Geo-Disaster Recover页面,执行Failover操作

    在执行前,可以通过在线Dig工具,查看当前的Alias域名(lbeventhubertest.servicebus.chinacloudapi.cn)解析出来的Host指向的为 lbdiagnostictest01

    开始执行Failover操作 (只需要在 Event Hub的页面中通过 点击Failover 案例即可)

    在执行完成Failover操作后,再次通过Dig工具,查看Alias域名(lbeventhubertest.servicebus.chinacloudapi.cn)解析出来的Host为:lbdiagnostictest02

     

    第五步:验证发送的消息是否从主的EventHub 转移发送到次的Event Hub, 此处,通过 Azure Event Hub页面上的Metrics图表进行判断

    分别在主/从 Event Hub页面中进入Metrics页面,查看Incoming Message的曲线

     

     

    特别注意:按照设计,事件中心异地灾难恢复不会复制数据,因此,无法在辅助事件中心重复使用主事件中心的旧偏移值。建议通过以下方法之一重启事件接收器:

    • EventPosition.FromStart() - 如果想要读取辅助事件中心上的所有数据。
    • EventPosition.FromStart - 如果想要读取自连接到辅助事件中心开始算起的所有新数据。
    • EventPosition.FromEnqueuedTime(dateTime) - 如果想要读取自给定的日期和时间开始算起辅助事件中心收到的所有数据。

     

    [END]

    参考文档

    ServiceBusExplorer : https://github.com/paolosalvatori/ServiceBusExplorer/releases

    Azure 事件中心 - 异地灾难恢复: https://docs.azure.cn/zh-cn/event-hubs/event-hubs-geo-dr?tabs=portal

    Azure 事件中心故障转移: https://docs.azure.cn/zh-cn/event-hubs/event-hubs-federation-patterns#failover

    Online Dig: https://www.diggui.com/
     
     
  • 相关阅读:
    【JavaSearch/搜索引擎】项目测试
    协议-http协议-基础概念04-长短连接-重定向-cookie-缓存-代理
    并查集(Union-Find)
    全面解析机器视觉工业缺陷检测(光源,相机,镜头,算法)
    C++编程笔记(GPU并行编程-2)
    nginx(五十七)ngx_http_upstream模块(二)一致性hash算法
    如何在前端项目中管理依赖关系?
    实在智能受邀参加第14届珠中江数字化应用大会,AI赋能智能制造,共话“湾区经验”
    Android Audio实战——音频焦点监听(十)
    【iOS】将网络请求封装在一个单例类Manager中(AFNetworking、JSONModel)
  • 原文地址:https://www.cnblogs.com/lulight/p/16505283.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号