大家好,我是哪吒。
文末送5本《深入理解分布式系统》
去年的这个时候,某电信大楼发生火灾,数十层楼体燃烧剧烈,消防赶到后将火势扑灭,撤离及时,无人员伤亡。经初步侦察,现场为大厦外立面起火。为防止发生危险,大楼部分设备断电,据中国电信官方及用户反映,部分用户手机语音和短信功能受到影响,截止当晚12时仍未恢复。
电信大楼于2000年建成,建筑地上42层地下2层。大楼内含荷花园电信机房,是湖南最大的主干线接入点之一,此前资料显示,机房具备25G光纤直CHINANET骨干网,总机架数量约1000个。
事发前招标信息显示,该大厦消防设备超期运行,火灾报警系统等存在较大安全隐患。
我们公司恰好有一个项目涉及其中,甲方要求连夜通宵解决此问题,保证数据的安全性和完整性。白天开会设计方案、晚上通宵实现方案、再开会汇报技术调研成果,循环往复,最终定下了同城双活数据中心这一技术方案。
双活数据中心同时对外提供业务生产服务的双活模式,两个数据中心是对等的、不分主从、并可同时部署业务,可极大的提高资源的利用率和系统的工作效率、性能。
数据中心双活又分为:同城双活、异地双活。
区别在于由于网速的限制,每100km所产生的数据延迟约为1ms。
出于灾备目的,一般都会建设2个(或多个)数据中心,一个是主数据中心用于承担用户的业务,一个是备份数据中心用于备份主数据中心的数据、配置、业务等。
充分利用资源,避免备用服务器常年闲置造成的资源浪费,双活数据中心的服务能力是双倍的;如果一个数据中心断了,另一个还在运行,请求可以直接全部切换到正在运行的中心,用户无感知。
主备数据中心之间一般有热备、冷备、双活三种备份方式。
传统主备模式是一个业务只在一个数据中心运行,企业结合灾备等级需求和业务需求,在备份中心部署了大量的备份服务器,但备份中心仅为该业务提供灾备服务,只有当灾难发生、生产数据中心瘫痪时,灾备中心的业务系统才启动这些服务器,造成备份中心服务器资源浪费。
在设计双活数据中心的时候,数据同步是一个重点、难点。如果同步效率达不到,会造成数据丢失;由于数据同步不及时,网络故障问题,会造成双活中心被分裂成两个独立的数据中心,用户无法判断两个中心的数据哪个是最新的,这种现象被定义为脑裂问题。
由于网速的限制,每100km所产生的数据延迟约为1ms,会对实际应用性能构成影响,特别是双数据中心数据交互密切的业务。
为了解决双数据中心的脑裂问题,需要提供有效的Quorum/ Tie-Breaker方式来保证数据完整性。
注:Quorum 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法。
如果增删改的操作比例越高,就会有越多的数据需要跨数据中心传送,不利于双活中心设计,此时要考虑双活系统可以承载的工作量阈值。
随着数据的增多,数据安全和隐私保护成为数据中心面临的重要挑战。数据中心需要采取更严格的安全措施,防止数据泄露、黑客攻击等问题,同时还需要满足各种合规要求。
双活数据中心是一种两个或多个数据中心同时在线提供服务的数据中心架构。在这种架构下,两个数据中心是对等的,不分主从,并可同时部署业务,可极大地提高资源的利用率和系统的工作效率、性能。当其中一个数据中心发生故障时,另一个数据中心能接管所有的应用请求,其核心的建设目标就是要确保“数据零丢失”。双活数据中心通常需要在基础设施、中间件、应用程序各个层次进行配置,以确保数据在两个数据中心之间实时同步。
应用、中间件、数据库,一切都是双套的,虽然双活中心可以同时可以对外提供服务,但终究还是有些冗余,因为原本一个数据中心就可以完成全省的业务支撑。
“2023减员增效”成为了热点名词,双活数据中心成本确实有点高了,怎么解决?
答案是:动态数据中心。
动态数据中心是一种可以根据业务需求动态分配资源的数据中心解决方案。它可以根据业务需求弹性扩展或缩减资源,实现IT资源的最大化利用。动态数据中心通常提供自服务功能、资源管理和服务生命周期管理等,使用户可以根据需要弹性分配适当的应用配置,并支持动态扩展。动态数据中心的目标是提高数据中心的灵活性、可扩展性和效率,以满足企业的快速变化和发展需求。
双活数据中心需要在基础设施、中间件、应用程序各个层次进行配置,以确保数据在两个数据中心之间实时同步。而动态数据中心主要关注IT资源的动态分配和管理,降低管理复杂度和运营成本。
动态数据中心有助于简化基础架构配置、合并管理工具,并促进自动化和一致性的实现。通过基于模板的配置、自动化配置以及基础架构生命周期管理等功能。动态数据中心能够帮助IT 快速响应业务需求、提升数据中心效率,并且提高IT 服务的交付质量。
动态数据中心可以简化基础架构配置过程中复杂而繁琐的任务。它能够帮助IT 组织快速引入新的基础架构或快速重新配置现有基础架构。这可以大大加快新工作负载投入生产的速度或者现有工作负载的资源扩展。
京东购买链接:深入理解分布式系统
《深入理解分布式系统》主要讲解分布式系统常用的基础知识、算法和案例,经笔者对文献海洋中晦涩艰深的原理和算法进行提炼,辅以图示和代码,并结合实际经验进行分析总结而成。通过阅读本书,读者可以快速、轻松地掌握分布式系统的基本原理,以及Paxos或Raft共识算法,并通过典型的案例学习如何设计大型分布式系统。
《深入理解分布式系统》首先介绍什么是分布式系统、分布式系统带来的挑战,以及如何对分布式系统进行建模,这部分内容偏向概念性介绍。接着介绍了分布式数据的基础知识,包括数据分区技术、数据复制技术、CAP定理、一致性模型和隔离级别,尝试厘清一些十分容易混淆的术语,比如一致性、线性一致性、最终一致性和一致性算法等。本书还介绍了分布式系统的核心算法——Paxos和Raft算法,不仅补充了大量图示进行讲解,还从零实现了一个Paxos算法。此外,本书分析了常见的分布式事务,并讨论了分布式系统中的时间问题,整理了一些实际发生的编程陷阱。最后结合一些对工业界产生重大影响的论文或开源系统,学习前人在设计大型分布式系统时的思路、取舍和创新。
唐伟志,曾任网易游戏、腾讯基础架构工程师。毕业后一直从事分布式系统相关工作,在知乎和公众号“多颗糖”上分享对分布式系统论文的解读和算法的讲解。开源爱好者、TiDB Reviewer和Kubernetes Contributor。
哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。