随着公司业务的发展,每个稳定性故障的影响都在增加,提供稳定的服务,以确保系统的高可用性已成为整个技术部门面临的问题。基于此背景,公司进行了一个云/现场技术项目。我很幸运地参加了“第二天”项目的“ 1]项目”的设计。我想谈论我对一些生活甚至全球化的技术解决方案的认识。
我将根据整体技术解决方案,双重生活/全球区域部署技术,网络调度技术,绩效优化和SRE五号启动。双重生活/全球区域部署技术中的路由服务设计模块,并将逐渐改善随后的毒药家庭博客中多生命体系结构的完整技术解决方案。
除了满足用户对性能和可用性的基本要求外,网络服务还提高了多活性/全球化背景下的合规性和数据隔离要求。这一方面的要求遇到了新的挑战。
1.性能
用户要求对接收和响应的要求越短,性能就越好。在双重生活/全球化的背景下,用户可能在日本,计算机室可能在中国,物理的物理距离都有越来越长,相应服务的响应及时性将成比例。检验数据显示,网络的RTT将通过Cross -Country或一个大型横向交叉室呼叫增加约1秒,这可能会导致1S交易的“转换率”下降甚至失去了用户。
2.可用
多人全球业务将越过时区,这需要我们的服务可以使用7??24小时。这不仅是对系统的挑战,而且是对人力的挑战。
3.互连
互连的互连是指电信网络之间的物理连接。为了使电信运营商的用户能够与中国的另一位电信运营商的用户进行通信,这种网络通信跨越了跨越的网络通信,但跨越了大问题。但许多国家的网络互操作性和互连的质量仍然不理想。
4.数据一致性
当全球用户共享数据时,用户可以在许多地方执行读写操作。如何确保数据的一致性?
5.隐私保护
全球化业务必须遵守GDRP(一般数据保护法规,一般数据保护法规)。
6.射精
Wikipedia的说明:当系统,网络或过程能够在任务量增加或减小时响应时。
系统的核心是处理现场领域之间的关系,并从现场模型开始,以使整个系统能够满足当前状态和未来需求。在同一时间,让项目团队更好地合作。以下是系统的核心对象。
用户:网站平台上的用户。
用户组:用户组:具有相同特征的用户通常采用相同的网络链接和计算机室调度策略,因此他们将归因于同一用户组。实际上,多生命系统基于用户组。用户组的成员。我们可以将用户组用作单元计划或特定用户计划。
edgenode:edge node.it可以理解为静态资源的节点。
NetLink:网络链接。
NETNODE:网络节点。
IDC:计算机室。
DNS:DNS服务器。
HTTP-DNS:了解应用程序端的DNS服务器。
domainname:域名。
VIP:虚拟“偶像”。
上面字段中模型之间的关系如下;
根据上面的描述,实际上可以看出,从用户到计算机室,都会有边缘节点调度,网络调度和计算机室调度。调度的控制(路线的生成)。划分是每个用户或每个用户组都属于该机室。构图如下;
调度的具体策略取决于业务需求。一般来说,考虑到合规性,数据一致性,可伸缩性,成本,能力,性能和稳定性。通常重要的订单是
合规性>数据一致性>射精>其他
目前,我们有四个机室(A大陆,B,C竞赛和D大洲)来构建与每个计算机房间所在的区域服务相对应的区域用户。需要按需复制机房之间的数据。每个计算机室都部署了所有应用程序和数据库,因此每个计算机室都相等。数据备份时,所有计算机室都可以用于灾难室。DATA的一致性和可伸缩性将在以下内容中引入。
以E展览的场景,附近的访问和灾难恢复为例。当不同地方的灾难容忍度时,数据一致性也将面临;当用户迁移到其他区域时,他们仍然需要确保他们在附近附近。
我们回应的策略如下:
从应用层的角度来看,该解决方案如图所示。
区域部署技术的本质是多层路由,在路由的每一层中,它基于用户的路由与计算机室相对应的路由。路由服务的作用是告诉呼叫派对,用户属于哪个用户属于。
如何使用路由表
路线传输的时间限制有限。当超过一定时间时,传输的内容将失败。如果在传输过程中更改用户路由更改,该怎么办?本文遵循 - up答案。
路线设计规范必须了解以下几点:
4.2.1.1该方案比较方案的比较包括以下分布式缓存,哈希姆普,布鲁姆过滤器等的引入。如下以下方案具有自己的缺点,如下所示。
4.2.1.1.1简介分布式缓存4.2.1.1.2 HashMap4.2.1.1.1.1 Bloom Filter似乎没有现有解决方案,您需要根据场景自定义路由表。
4.2.1.2基于上述灵感的路由表设计,选择使用生化阵列作为存储路线信息的使用。我们可以用4位表示用户。如图所示;
这样,存储1亿个存储的数据仅需要约4700万的存储空间。
但是,如果将用户ID的分布进行了细分:
0?80000000
100000000?300000000
700000000?800000000
2000000000?2000100000
尽管真实用户的数量仅为1亿左右,但ID分布如此之大,因此它将消耗超过900 m的内存。
基于此,介绍了分割模式:
段模式显示在图中。核心想法是建立一个段索引表。每个索引表均指定BI-特定序列的一部分来保留用户信息(例如,我们使用100万用户作为段落)。这些索引项目中没有用户,我们执行了一个null段落。相应的位。序列不会分配存储空间。这大大节省了内存空间。这样,相同的用户注册需要大约58 m的存储空间。
4.2.1.3路由表的设计解决了路由表的基本存储方案,但是对于连续设计仍需要改进一些方案。现在我们考虑两个问题:
可以根据每个公司使用的配置系统来集中特定的配置逻辑。
路线更新机制的建立需要以下设计约束;
4.2.2.1数据一致性想法通常可以解决分布式系统的问题,如何同时在所有计算机室或多计算机室上同时修改任何记录。解决方案并不复杂且通用。尽管我们不能保证这种更改在所有机械室或多机房房间中同时生效,我们可以知道该更改是否已在多计算机房间生效。在此基础上,能力解决了这个问题。
如图所示,状态A是更改之前的状态。状态C是变更后的目标状态。状态A和状态C不能同时出现,但是状态A已更改为状态B.所有变为b,然后从B到状态C,因此状态A和状态C不会同时发生。
为了在路由更新过程中解决总体业务数据的问题,我们引入了“禁止”过渡版本。在切换到目标路由机室之前,我们首先将路由设置为当前计算机的“禁止”过渡版本房间。在这种状态下,用户无法继续执行任何操作来修改当前机室和任何其他计算机室中的相关业务数据。在“禁止”的过渡版本更改为新版本之前,有必要确保所有版本所有路由分析的本地版本已升级到“禁止”过渡版本。“禁令”过渡版本的过渡版将与新旧路由版的有效时间分开。在某个时刻,新旧版本的路由没有任何情况,从而确保了业务数据的全球一致性。
(注意:“禁令”过渡版本的“禁止”过程中其他业务的可用性将在一定程度上受到影响。该业务应被企业接受并理解为业务可用性临时降级。此降级将在用户不活动的时期安排,并且通常不会对用户的体验产生很大的影响。返回路由表,不需要存储用户ID,并且相应的计算机室对应于对应的计算机室,相应的计算机室对应于相应的计算机室。用户位的前三位可以编写与符号相对应的第四位置。当它为0时,用户可以编写它,并且在它时将用户禁止使用。是1.)
4.2.2.2解决方案4.2.2.2.2.1数据准备和“禁止”的有效过程将影响用户。如果用户被禁止,则意味着用户不能下订单。尽管用户不活跃,但可以更改。还原对用户的影响的可能性,但是更改可以进一步降低此概率。我们可以使用数据准备来与效果过程分开。
4.2.2.2.2一致性特定程序Zookeeper是一种高性能分布式协调工具,用于节点之间的通信。它通常用于分布式配置管理中。其中大多数也用于该解决方案。
在分布式协调方案中,经常使用短期节点。该节点类似于创建他的会话。当会话消失时,节点将消失。此机制通常用于进行心跳。在路由节点的构造中,所有需要收听路由表的节点都会为路由表加载的心跳检查创建一个短节点节点。单个更改的过程如下:
上述步骤上述步骤所述的目录节点结构如下:
4.2.2.3关键技术细节是在整体体系结构之前引入的。如前所述,控制系统将负责所有计算机室的区域管理,包括路由表的变更过程,每个计算机室中将有一个控制剂,并且控制系统将负责整体结构。将呼叫代理管理所有计算机房间。在路由更改过程中,每个代理商将在机房中写入路由数据到相应的分布式数据库,ZK将信息推向信息,我不会进入详细信息在这里。
4.2.2.3更改更改过程时,完整的过程将更改如下:
我以前介绍了路由表的更新机制,但是如何确定用户属于的计算机室?如何更改用户属于机舱的属性?如何将网站用户添加到路由表中?加入路由表?
4.2.3.1确定用户的归属机室处于实际应用程序场景中,并且大多数用户的归因逻辑采用了性能优先原则,这基本上等同于访问中最小延迟的用户室。大多数情况下,最小延迟的计算机室是最近的计算机室。
我们如何判断用户对机房的属性?解决方案如下:
4.2.3.2更改用户属于机舱的属性,并确定用户属于计算机室的属性。假设机床的新属于机器的新机器不同,则必须实现用户对计算机室的所有权。如前所述,在用户路由的过程中,需要将表重写为“禁止”状态与前向和向后兼容。此过程可确保路由表本身不会带来数据不一致的数据。但是,从“禁止”用户到用户的“写作”的过渡,需要将用户的数据复制到原始机室中的目标室,以及有必要确保复制完成。相关的数据复制技术在这里不讨论,并且将在后续章节中进行描述。
4.2.3.3更改优化时间更改可能会对用户产生影响,因此我们需要优化更改时间以减少对用户生产的影响的可能性。主要方法是主要找到用户。
(1)在小时内给出时间段标识ID。
0 0-1 1-2 2 2 2-3 3 3-4 4 4-5 ... 23 23-24(2)设定用户不同行为的重量。重量代表对用户影响的大小。
浏览0.2订购0.8(3)在一段时间内构建用户ABC如下,以下计算方法用于计算每个事件的冲突值。
ABC浏览1 2 1 4 ABC订购4 2 8 P(0)= 1/(1+2+1)0.2+4/(4+2+2)0.8 = 0.45表示0.45的识别ID的时间段
p(1)= 2/(1+2+1)0.2+4/(4+2+2)0.8 = 0.3 ID标识ID的时间段为0.3
p(2)= 1/(1+2+1)0.2+4/(4+2+2)0.8 = 0.25 0的标识ID的时间段为0.25
价值越大,避免这次的价值就越大。
4.2.3.4股票更新计划的股票更新计划是指这两个场景
这两种情况通常是指所有当前系统中所有用户的所有权室。基于前面介绍的知识,当前的计划是我们提到的是,用户属于机床(4.2.3.1)方案,我们提到了我们之前提到的。
在这里,我们提到归属的默认优化。我们使用某个计算机室作为默认的计算机房间。所有属于此机械室的用户都不需要加入路由表。当通话路由服务查询用户的路由时,路由表返回空值。默认的计算机房间大大减少到路由表的大小。
4.2.3.5完整更新方案增量更新方案通常是指两种情况
对于第一种情况,新机械室中的用户将归因于默认的计算机室,而不会更改任何路由表。随后的过程与第二种情况相同。
对于第二种情况,在多机室检测新用户的过程中,发现用户可能不属于机床,或者不是新的注册用户访问默认机房的最快的方法。需要进行用户迁移,即增量更新。确认归属后,增量更新与库存更新方案一致。相比之下,需要更改增量更新方案的用户较少。续订方案的数量不需要多次。
本文主要介绍不同位置的多生活/全局转换过程中的基本概念,以及现场建模和路由系统存储优化过程。follow-UP将继续更多地更新更多有关不同不同的实时/全球化。地方。欢迎您注意公共帐户“ Getomical Technology”。
笔记:
[1] LEATTIME(LT)是增益推出的绩效承诺产品。核心逻辑是匹配停车场,城市和产品属性的背景配置,以使用户承诺支持产品。第二天商品交付。
文本/fuguofeng
原始:https://juejin.cn/post/7112270629096652808