当前位置: 首页 > news >正文

永久免费网站系统阳泉 网站建设合作

永久免费网站系统,阳泉 网站建设合作,3d动画制作软件免费,建公司网站设计网站公司简介#xff1a; 容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时#xff0c;容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力#xff0c;在同城或异地建立对应的IT系统#xff0c;其中最核心的工作是数据同步。本文选取… 简介 容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力在同城或异地建立对应的IT系统其中最核心的工作是数据同步。本文选取应用层容灾的场景中对于哪些数据表需要跨云同步哪些数据表不需要跨云同步的问题进行探讨。通过一个具体的案例帮助读者更好地梳理同步表和过滤表的方法以满足应用层的业务容灾需求。 一 背景 容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力在同城或异地建立对应的IT系统其中最核心的工作是数据同步。 本文选取应用层容灾的场景中对于哪些数据表需要跨云同步哪些数据表不需要跨云同步的问题进行探讨。通过一个具体的案例帮助读者更好地梳理同步表和过滤表的方法以满足应用层的业务容灾需求。 二 相关术语 本文探讨的场景是基于阿里云构建的应用层容灾涉及到以下关键术语 RDS MySQLMySQL 版是全球最受欢迎的开源数据库之一作为开源软件组合 LAMPLinux Apache MySQL Perl/PHP/Python 中的重要一环广泛应用于各类应用场景。阿里云RDS MySQL版通过深度的内核优化和独享实例提供稳定极致的数据库性能同时灵活的部署架构及产品形态可满足不同场景下的数据库需求。 DTS数据传输服务(Data Transmission Service) 支持关系型数据库MySQL等、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输致力于在公共云、混合云场景下解决远距离、毫秒级异步数据传输难题。 使用数据传输轻松构建安全、可扩展、高可用容灾的数据架构。 ASRASR-DRApsara Stack Resilience Disaster Recovery是一款提供容灾功能的云产品支持RDS MySQL的容灾管理。ASR是为了在灾难发生时快速地实现容灾切换尽可能地降低RTO而开发的基于图形交互的切换工具。 同步表本文特指RDS MySQL的数据库和数据表中哪些表必须从一朵云备份到另外一朵云即跨云同步。 过滤表本文特指RDS MySQL的数据库和数据表中哪些表不能或不需要从一朵云备份到另外一朵云。 应用配置表本文特指应用层在RDS MySQL中的数据表这个表记录应用层的相关配置信息比如IP、域名、定时任务的开关状态等等。 Sequence全局唯一序列号ID在分布式系统里面应用广泛可用于交易流水号用户ID等。 在搜索, 存储数据, 加快检索速度等等很多方面都有着重要的意义。这个ID常常是数据库的主键要求全局唯一、支持高并发、容错单点故障。为了提高性能应用层通常每次从数据库中获取一批序列号比如1万个存放到应用内存中使用避免频繁访问数据库。内存中的序列号使用完成后再次从数据库中进行获取新的一批序列号。 三 应用容灾中关于过滤表的关键技术问题 为什么需要梳理不做跨云同步的过滤表 非容灾应用 备中心资源限制实际项目中受限于备中心的资源限制无法在备中心内部署应用系统因此非容灾的应用对应的数据库和数据表无需同步。运维临时备份库和备份表无需同步在日常运维中DBA在对数据库进行变更时通常会做临时性备份。临时备份的数据库或数据表由于阿里云 RDS MySQL集群本身已经在后台进行了备份无需用户再做一次跨云同步。这样可以减少同步链路的带宽和容灾切换的管理工作量。不支持容灾的应用云产品的容灾能力建设是一个持续过程某些云产品在项目交付阶段暂时还不具备容灾能力但是用户的应用依赖了这些指定的云产品。因此这部分的应用暂时无法做容灾演练对应的数据库和数据表也可以暂时不做同步。待应用的全流程依赖的云产品都支持容灾后再进行数据同步即可。 有差异的配置表 应用配置的方式应用系统为了将代码和配置分开管理通常将配置参数单独存放和管理。常见的配置形式有配置文件、RDS MySQL数据库、专用的配置中心其中专用配置中心后台也用了RDS MySQL来存储数据。比较忌讳的方式是在代码中硬编码配置参数如IP、域名等。环境参数应用软件在使用云产品如RDS MySQL、OSS、SLB等产品时需要通过IP、域名、账号密码、AK/SK进行连接。应用参数某些功能只能在一个中心内的应用执行这些功能开关在数据表里面的某些字段值进行控制。比如某些定时任务会定期和外部机构发生批处理的调用。如果双中心的定时任务同时运行可能会导致外部机构的批处理重复执行这依赖于外部机构能否支持重复执行相同的批处理任务。这些定时任务的配置表需要在双中心分别配置。同城容灾的配置方式第2点的环境参数默认是相同的。同城一朵云的双中心距离较近小于100公里应用部署在一朵云的两个可用区云产品连接信息是相同的。因此应用软件在部署时访问的是相同的环境参数。此场景中需要梳理有差异的环境参数是比较少的。异地容灾的配置方式第2点的环境参数存在差异。同城两朵云的双中心距离较远大于100公里应用部署在两朵云的两个可用区云产品连接信息是不同的。因此应用软件在部署时访问的是不同的环境参数。此场景中需要每个应用分别梳理差异的环境参数。差异的环境参数所在的数据表不能跨云同步否则会导致应用系统部署失败。 需要双写的业务表 双写的场景a业务流量在双中心同时处理称为应用层双活需要同时向双中心写入数据表。b应用运行期记录微服务的调用日志等。理想情况下应该是有业务流量在处理时应用才会向数据库中记录数据。实际项目中业务也会出现特殊情况在备中心的应用即使没有流量请求也会定期写入一些日志比如微服务调用日志、定时任务日志、应用启动时更新全局唯一序列号Sequence等等。双写的场景要求主中心和备中心的RDS MySQL都具备读和写权限。同城双活场景同城一朵云的双活架构中主中心和备中心对应用层提供统一的云产品连接信息应用都具备向RDS MySQL的写入权限。异地主备场景异地两朵云的主备架构中主中心RDS MySQL对应用层提供读写权限而备中心RDS MySQL向应用层提供只读权限。这种权限策略无法满足第1点中的双写要求。因此对于双写的表需要按照应用维度梳理过滤表。 如何梳理不做跨云同步的数据表 在项目中会发现应用软件开发商更关注业务逻辑的实现对于云产品使用的最佳实践以及容灾能力的了解程度可能和我们的预期存在一定的差异。而梳理过滤表主要由应用开发商来执行在梳理过程中有几个常见的问题。 设计和开发时期开发人员应该如何做来减少容灾时候不同步的过滤表部署和运维时期运维人员应该从哪些角度来确保过滤表的完整性和正确性 如果梳理错误对应用层容灾演练有什么影响 在项目中往往受限于工期和生产系统稳定性运行的约束应用开发商和云平台厂商即便清楚设计和开发的最佳实践也比较难限时完成改造。因此部署和运维期的时候梳理过滤表和准备应急预案是容灾演练的重点工作项。 我们来分析一下如果梳理过滤表错误可能对应用层容灾有什么影响对非容灾应用的影响 几乎没影响。前面分析过建议非容灾的应用可以不做数据备份或者备中心应用在备份数据上不做为生产用途。 对容灾应用的影响 备中心部署应用后启动应用失败此时能够识别出错误的环境参数。应对措施是停止对应数据表的同步修正读写权限后继续部署。备中心应用在测试功能时重点关注后台定时任务和非业务请求写RDS MySQL的场景在测试阶段修正过滤表的清单。对生产系统运行期做容灾切换演练在异地容灾架构中错误的过滤表清单可能会导致数据库主键写冲突的错误进而出现写业务失败问题。此时可通过应急预案紧急停止或增加同步功能或修正数据表字段值重启应用方式的手段来恢复。在下次演练前修正过滤表清单。本文后面将对此场景用一个案例简单说明。 四 在应用容灾中设计不同步的数据表 前面我们已经介绍了应用容灾中哪些表不同步的必要性本节我们来探讨如何梳理和设置过滤表。以下分析是比较理想的情况实际项目中会有一些差别。云平台角度 了解云平台的能力目前主流的云平台厂商都有RDS MySQL产品但是每家厂商的RDS MySQL在同城多可用区和异地多Region中的容灾能力是有区别的。用户需要了解每家云厂商的数据同步能力在同城和异地两种情况下是后台自动完成还是利用工具如阿里云的DTS还是人工写脚本完成配置过滤表的方式阿里云DTS产品支持在创建RDS MySQL实例同步链路时配置哪些数据库和数据表不同步。自动配置过滤表功能在容灾演练过程中会涉及主切备、备切主因此对应数据同步方向发生反转我们称成为正向同步和反向同步。当发生同步方向反转时需要容灾切换平台支持自动配置过滤表。阿里云ASR-DR支持第一次创建同步链路时保存过滤表的清单后续每次同步方向切换时由ASR-DR自动给新的链路配置过滤表。 如下是阿里云数据数据传输服务DTS产品公开的资料文档。 应用层角度 接下来我们从应用开发商比较关注点几个阶段分析如何有效性地基于云容灾来交付应用软件。1.设计阶段 基于云容灾的设计思路。考虑应用未来会部署在两朵云或多朵云有可能是不同厂商的云平台上。因此早期基于IOE架构的容灾架构由专业存储硬件完成的数据层同步在多云场景下将不适用而Oracle昂贵的license也是很多企业难以接受的。考虑为每朵云和每个中心预留标识参数用于表示当前配置适用于哪朵云上。由配置中心统一管理当前运行环境上是哪朵云的参数生效应用代码无需关注自己运行在哪朵云上。识别哪些场景的功能只能在其中一朵云上运行的并为这些功能安排开关。通过配置中心并将开关设置为可动态配置和生效。重点关注定时任务。建议将这些功能开关的操作放在白屏界面便于在容灾切换有限而紧迫的时间内允许运维人员快速操作而不是打电话到处问人关闭某个定时任务是在哪个库、哪个表的哪个字段来控制开关。记录过滤表清单并及时更新。 2.开发阶段 优先使用配置中心来保存参数。实际项目中保存配置的方式有多种方式包括配置中心、配置文件、RDS MySQL、甚至还有在代码中直接编码某个地址、账号密码。阿里云EDAS产品提供配置中心功能支持动态配置、静态配置以及配置变更后动态推送而不需要应用重启才能生效。配置中心本身的地址可以记录在应用的配置文件中将配置文件和应用程序一起打包发布。因为配置中心服务在部署后很少会发生变化。如果暂时无法使用配置中心必须要用RDS MySQL来管理配置。建议将记录不同云环境参数的配置放在独立的数据表中单独提供功能开关的配置也放在独立的数据表中不要和业务表耦合在一起。好处是降低了管理过滤表的难度。重点关注云产品的域名、IP、账号密码、AK/SK。 3. 部署阶段 运维人员和开发人员确认清楚每个过滤表的被选中的原因背后的业务依据是什么重点关注是否多配了过滤表。登陆每个数据库检查容灾切换平台ASR-DR是否按照预期来设置过滤表。当过滤表有上百个的时候容易出现遗漏或错误。创造条件在备中心上提前验证业务功能重点关注过滤表场景是否符合预期关注定时任务是否只在一个中心上运行。 4. 运维阶段 配置变更在两朵云上的过滤表同时执行。当在主中心上对过滤步表进行了变更后如增加字段或调整字段类型备中心无法感知到需要手工在备中心上做同样的修改。否则容灾切换到备中心后会因为表未更新导致应用错误。过滤表恢复为同步表。早期梳理过滤表清单有误多配置了过滤表后来验证需要同步。需要重新对数据表做全量数据同步并在容灾管理平台ASR-DR上修改这个表是否同步的标志。同步表改为过滤表。早期同步的表由于业务做了调整后续无需再同步需要在容灾管理平台ASR-DR并在容灾管理平台ASR-DR上修改这个表是否同步的标志。 下图为异地容灾主备架构下同步表和过滤表的配置逻辑说明。 五 案例 下面分析一个异地容灾的项目中由于过滤表清单梳理错误导致业务异常问题及处理经验便于读者对数据表是否需要跨云同步更有体感。 1问题描述 在阿里云容灾平台ASR-DR对某个应用执行容灾切换RDS MySQL读写权限从Cloud A切换至Cloud B后业务请求在备中心Cloud B时业务报错数据库提示“主键冲突”。 2问题分析 我们根据问题处理的先后顺序对问题定位过程进行分析。 1. 分析数据库报错“主键冲突” 确认冲突的字段值为交易流水号ID。检查业务数据表确认这个ID的交易信息已经存在。 2. 分析业务请求路径 分析是否接入层流量调度异常导致的双写。在异地容灾的主备架构中通过接入层的全局负载均衡设备GSLB控制保证只有主中心有业务请求流量备中心没有业务请求流量。因此双中心业务双写导致的主键冲突的嫌疑可以排除掉。分析是否为主中心应用层缓存在主备切换后延迟写入数据。在主备架构中容灾平台ASR-DR平台会保证主中心的RDS MySQL数据库权限设置为只读后才会对备中心的应用开放对RDS MySQL的读写权限。即使主中心的应用层有缓存延迟写入在容灾切换后主中心应用没有权限写入数据不会出现双写场景。排除此嫌疑。分析是否为容灾切换前已使用了该序列号。登陆主中心的数据库检查序列号字段当前可用范围是[90000000000, 18446744073709551615]说明小于90000000000的序列号已经被使用。而当前提示主键冲突的序列号80000000000已经在业务表中有对应的交易记录。因此确认这个交易记录号是在主中心使用过了。分析备中心应用获取序列号的记录。从应用日志看到备中心应用在首次启动时获取了一次最新的序列号后面没有再从数据库获取最新的序列号。同时检查应用的内存值发现备中心当前正在使用序列号范围[80000000000, 80000009999]。显然这是过期的序列号。 问题结论备中心应用使用了过期的交易流水号ID导致的写数据库出现“主键冲突”。 3. 分析问题引入过程 分析应用获取序列号的流程应用首次启动时从数据库中获取1万个可用的序列号并更新数据库和应用的内存值。分析主备中心上的数据同步机制作为管理全局唯一性序列号的数据表xx_table通过数据同步工具DTS能够保证数据实时在双中心之间同步且应用在更新数据库序列号时对数据库加锁防止不一致。理论上不会出现主备中心上获取到相同的序列号。分析主备中心上数据表xx_table内容是否一致发现主中心上的序列号可用范围是[90000000000, 18446744073709551615]而备中心的序列号可用范围是[80000010000, 18446744073709551615]。两者并不一致说明数据表并没有同步。检查数据同步工具DTS工作正常未发现任何错误或故障。检查过滤表清单管理全局唯一性序列号的数据表xx_table应该跨云同步但是却被配置为过滤表导致了数据无法同步。检查过滤表的梳理过程在容灾演练前的准备阶段运维人员在备中心部署应用后业务人员验证功能交易失败。失败原因是应用启动时获取序列号后写数据库失败提示无写权限因此交易功能初始化失败。在主备架构下默认主中心应用对RDS MySQL有读写权限备中心对RDS MySQL有只读权限。而备中心启动时需要些权限因此业务人员将管理全局唯一性序列号的数据表xx_table加入到了不同步的过滤表清单中导致这张表没有从主中心同步到备中心。 问题结论管理全局唯一性序列号的数据表xx_table被错误地加入到了不做跨云同步的过滤表清单 应急措施 手动将备中心的数据表xx_table中的序列号有效范围修正为正确的[90000000000, 18446744073709551615]。重启备中心的应用软件触发应用重新获取序列号。 改进措施 同步数据管理全局唯一性序列号的数据表xx_table需要同步从过滤表清单中移除xx_table确保主备中心的有效序列号范围一致。应用改造当备中心对RDS MySQL有只读权限时允许更新序列号失败应用初始化成功。当容灾切换后备中心获得RDS MySQ读写权限后由业务请求触发重新按需获取最新的序列号。测试效果主中心和备中心同步数据完成后断开同步链路手动设置备中心数据库为只读。重新部署改造后的应用在只读模式下验证应用启动成功并且业务请求失败符合预期。手动设置备中心数据库为读写业务请求成功检查应用是否成功重新获取到有效序列号。重新配置主中心和备中心数据同步链路。容灾演练再次进行演练来验证全业务场景。 改进前 改进后 六 小结 容灾演练是发现系统性问题的起点不是终点需要定期开展演练来保鲜系统的容灾能力。云平台容灾不等于应用容灾应用级容灾是系统性工程。通过演练来检查工程能力技术上包括云平台、应用和网络流程上包括故障判断、容灾决策、切换操作、应急预案等。 作者开发者小助手_LS 原文链接 本文为阿里云原创内容未经允许不得转载
http://www.pierceye.com/news/328881/

相关文章:

  • 美团先做网站还是app学生网站建设的总结与评价
  • 网站建设代理网站wordpress微博
  • dw建设网站视频宁波seo优化项目
  • 网站里添加百度地图浙江网站建设公司
  • php网站开发最新需求排名优化百度
  • 网站制作的电话智慧校园信息门户网站建设
  • 网站备案申请福田企业网站优化方案
  • 企业网站seo怎么做有空间站的国家
  • Linux网站建设总结网站建设目的确定
  • 怎么做网站的内部链接wordpress 写php页面跳转
  • 推广自己的网站网页设计代码html文件怎么查
  • 网站在线制作软件邯郸公众号小程序制作
  • 网站后台生成静态页面天津百度推广电话号码
  • 网站单个页面301跳转湖南省建设局网站
  • 潮州网站建设十堰seo招聘
  • 企业网站建设公司公司系统优化的方法
  • 网站开发与sparkwordpress default
  • 品牌网站建设帮你大蝌蚪北京做网站建设的公司排名
  • 中国建设第一平台网站网络网站建设10大指标
  • 书画院网站源码网站主题模板下载不了
  • 邢台制作网站网上申报流程
  • 做网站的困难做的网站有营销效果吗
  • 高端集团网站建设公司做网站开发的有外快嘛
  • 网站服务器防火墙设置惠州网络推广公司哪家好
  • 做网站根据内容生成pdfwordpress自媒体二号
  • 临沂网站开发不会写代码怎么做网站
  • 怎么做加密货币网站wordpress 多域名登陆
  • 做网站的过程做网站公司广州
  • 女人动漫做受网站wordpress如何作页面
  • 做网站导航栏素材图建筑设计网站制作