为满足用户对服务持续性和响应速度的高要求,很多企业采用同城多机房部署架构。该架构通过在同一城市内的多个数据中心部署业务,提升系统的容灾能力和性能。
容灾能力提升
- 故障隔离:当一个机房发生故障时,其他机房可继续提供服务。
- 数据冗余:数据在多个机房间同步,防止数据丢失。
降低延迟
- 地理优势:同城机房间距离近,网络延迟低。
- 用户体验:提高本地用户的访问速度。
负载均衡
- 资源优化:根据机房负载情况,动态分配请求。
- 弹性扩展:快速应对流量峰值,提升系统弹性。
AZ 可用区
在多机房部署架构中,经常听到多AZ部署,这里的AZ是 Availability Zone(可用区)的缩写。
可用区(Availability Zone,简称AZ)是指在同一地理区域内,具备独立电力、网络和冷却系统的物理数据中心。
每个可用区都是一个逻辑隔离的区域,多个可用区之间通过高速网络互联。
可用区的特点
- 物理隔离:避免单点故障的影响。
- 高速连接:低延迟的网络连接,支持数据同步和负载均衡。
- 独立性:独立的基础设施,提升容灾能力。
AZ间距离
在多AZ部署的情况下,对可用区(AZ)之间的距离有一定的要求,以确保在平衡高可用性、低延迟和容灾能力时达到最佳效果。
1、灾害物理隔离要求
可用区之间的距离足够远,以确保一个区域内的自然灾害或系统故障不会影响其他区域。
这通常意味着它们会分布在不同的建筑或城市,但在同一地理区域内(如同一国家或省份)。
2、网络延迟要求
可用区之间的距离不能过远,以避免过高的网络延迟,因为应用需要在这些区域之间快速同步数据或协调服务。
云服务提供商设计的AZ之间的网络通常具有低延迟和高带宽,以支持这种数据同步。
通常,AZ之间的延迟通常需要保持在单毫秒(ms)级别。
实际距离
在实际的云服务中,不同云服务提供商对AZ之间的物理距离有不同的标准,在数十公里到几百公里之间。
一般情况下,30公里到50公里的范围比较常见。
因为它在确保容灾能力的同时,也能提供低延迟的网络连接。
这种距离足够应对大多数灾害(如电力中断、洪水等),同时保持了区域内通信的高效性。
更大距离的部署
如果需要更大规模的容灾(如地震、台风等区域性灾害),则通常会考虑跨地域(Region)的部署。
这意味着数据中心可能相隔数百甚至上千公里,但这会增加延迟,因此通常用于灾备(Disaster Recovery)场景,而不是日常的多可用区部署。
延迟计算
两个AZ之间的延迟主要由:光在光纤中的传播速度和中间网络设备(如路由器、交换机等)处理时间组成。
可以通过以下步骤计算两个AZ之间的光纤传输延迟:
1、光纤中的传播耗时
光在光纤中的传播速度约为光速的2/3。
光速在真空中的速度约为300,000公里/秒,因此光在光纤中的传播速度为:200,000公里/秒。
光纤中的传播延迟可以通过以下公式计算:
传播延迟(秒)= \frac{距离(公里)}{光纤中的传播速度(公里/秒)}
30公里的光纤耗时:
传播延迟(秒)= \frac{30}{200000} ≈ 0.00015秒 = 150微秒
50公里的光纤耗时:
传播延迟(秒)= \frac{50}{200000} ≈ 0.00025秒 = 250微秒
2、考虑网络设备的处理延迟
在实际网络中,除了光纤传播延迟外,还有一些额外的延迟来自中间的网络设备(如路由器和交换机)的处理时间。
虽然现代设备的延迟通常很小,但这些延迟可能加在一起使总延迟增加几个微秒。
通常,我们可以假设每次路由和交换的延迟在几微秒到十几微秒之间。
如果两个AZ之间的网络相对简单,中间没有很多节点,处理延迟不会显著影响总延迟。
3、计算延迟
在网络通信中,延迟通常指的是往返延迟(Round Trip Time, RTT),即数据从源点发送到目的地,再从目的地返回源点的总时间。
假设网络设备的处理时间(10微秒),往返通讯经过两次网络设备,两倍距离,所以处理延迟也乘以 2。
30公里的总往返延迟
总往返延迟 ≈ (150×2)微秒+(10×2)微秒=320微秒=0.32毫秒
50公里的总往返延迟
总往返延迟 ≈ (250×2)微秒+(10×2)微秒=520微秒=0.52毫秒
考虑往返时间的情况下,30到50公里两个AZ之间的光纤传输往返延迟大约在0.32毫秒到0.52毫秒之间。
这是理论值,实际情况可能会因为网络复杂性和其他因素略有不同。
成本分析
采用同城多机房部署架构,成本主要在于下面这些:
基础设施成本
- 硬件投入:多机房需要额外的服务器、网络设备等。
- 数据中心租赁:多个机房的场地和设施费用增加。
运维成本
- 人力资源:需要更多的运维人员管理不同机房。
- 监控和管理工具:复杂度提升,需引入先进的管理系统。
网络成本
- 带宽费用:机房间的数据同步需要消耗大量带宽。
- 网络设备:高性能的网络设备投资。
软件成本
- 许可证费用:多机房部署可能需要额外的软件许可证。
- 开发成本:需要对应用进行适配和优化。
对于采用公有云(阿里云、腾讯云、华为云等)部署的服务,上述费用分摊在服务器成本里了,不论你用不用多AZ部署,都会承担。以此为理由,更应该做到多AZ部署。
结论
同城多机房部署架构在提高系统容灾能力、降低网络延迟和优化资源利用等方面具有显著优势。
然而,企业在实施该架构时,需要综合考虑成本、技术复杂度和业务需求。通过合理规划和设计,可以最大限度地发挥同城多机房部署的优势,为用户提供高可用、高性能的服务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2023-10-11 测试某个python库是否正常导入
2013-10-11 nginx 的模块及处理流程