第1章大型互联网公司的基础架构——1.12 多机房:主备机房

除了要考虑机房内的各个组件,也要考虑机房自身的高可用问题。使用单机房架构搭建互联网应用后台,虽然接入层、业务服务层、存储层均具备高可用架构,但由于机房是单点,所以还是避免不了机房故障会造成整个应用无法访问的问题。可能造成机房级别故障的情况有人为破坏、自然灾害等,比如断电、火灾、机房核心交换机故障、计算机病毒等。

种种不可控因素导致的机房故障,通常会造成整个应用后台不可用,这对于大部分公司来说都难以接受。当应用的用户量级已经较为可观时,解决机房单点问题便成为工程师迫在眉睫的工作。

解决机房单点问题最简单的方案是建设主备机房

  1. 在主机房所在的城市再建设一个备机房,整个备机房的内部完全复制主机房架构,在正常情况下仅主机房工作。
  2. 在存储层,备机房数据库被部署为主机房数据库的从库,主机房与备机房通过专线做存储层数据复制。

专线是一种特殊网线,就是为某个机构拉一条独立的专用网线,也就是建立一个独立的局域网,让用户的数据传输变得可靠、可信。专线的优点是安全性好,网络通信质量高;不过,专线价格相对较高,而且需要专业人员管理。专线被广泛应用于军事、银行等场景。

**专线是主备机房数据复制的核心通道。**为了保证这条通道的可用性,我们可以在主备机房之间铺设多条专线,这样可以规避如道路施工挖断专线等意外造成专线断连的问题。

如图1-57所示,在这种架构下,备机房拥有与主机房相对一致的数据,当主机房出现故障时,备机房经过如下简单操作就可以代替主机房对外提供服务。

image-20250217142811218

  1. 将备机房存储层的所有从库都提升为主库。
  2. 修改DNS解析地址指向备机房,逐渐接入用户请求。

这种在同一城市部署的主备机房架构也被称为“同城灾备”,其主要优点是架构搭建简单,备机房的搭建照搬主机房即可;缺点是实用价值不高,其主要问题如下。

  • 备机房大部分时间处于空闲状态,造成大量资源浪费。机房的建设与运维成本极其昂贵,常年供养一个空闲机房会让公司管理者颇有微词。
  • 可用性存疑,这是最核心的问题。虽然理论上备机房能够在主机房出现故障时接替其工作,但是它毕竟没有担任主机房的实战经验,我们无法确认它真的能在关键时候起作用(根据笔者的实际经验,需要备机房挂帅的时候它总是掉链子)。这就好比医院的一场手术,没有谁会放心让一个没有实战经验的实习生直接当主刀医生。

总结

如何解决机房单点问题?

  • 最简单的方案是建设主备机房。

如何建设主备机房?

  1. 在主机房所在的城市再建设一个备机房,整个备机房的内部完全复制主机房架构,在正常情况下仅主机房工作。
  2. 在存储层,备机房数据库被部署为主机房数据库的从库,主机房与备机房通过专线做存储层数据复制。

同城灾备的优势?

  • 架构搭建简单,备机房的搭建照搬主机房即可。

同城灾备的缺点?

  • 备机房大部分时间处于空闲状态,造成大量资源浪费。机房的建设与运维成本极其昂贵,常年供养一个空闲机房会让公司管理者颇有微词。
  • 可用性存疑,这是最核心的问题。虽然理论上备机房能够在主机房出现故障时接替其工作,但是它毕竟没有担任主机房的实战经验,我们无法确认它真的能在关键时候起作用(根据笔者的实际经验,需要备机房挂帅的时候它总是掉链子)。这就好比医院的一场手术,没有谁会放心让一个没有实战经验的实习生直接当主刀医生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21923.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyRTC:基于WebRTC与P2P技术,开启智能硬件音视频交互的全新时代

在数字化浪潮的席卷下,智能硬件已成为我们日常生活的重要组成部分,从智能家居到智能穿戴,从工业物联网到远程协作,设备间的互联互通已成为不可或缺的趋势。然而,高效、低延迟且稳定的音视频交互一直是智能硬件领域亟待…

项目设置内网 IP 访问实现方案

在我们平常的开发工作中,项目开发、测试完成后进行部署上线。比如电商网站、新闻网站、社交网站等,通常对访问不会进行限制。但是像企业内部网站、内部管理系统等,这种系统一般都需要限制访问,比如内网才能访问等。那么一个网站应…

ProfiNet转EtherNet/IP罗克韦尔PLC与监控系统通讯案例

一、案例背景 在新能源产业蓬勃发展的当下,大型光伏电站作为绿色能源的重要输出地,其稳定高效的运行至关重要。某大型光伏电站占地面积广阔,内部设备众多,要保障电站的稳定运行,对站内各类设备进行集中监控与管理必不可…

C++STL——map和set

C教学总目录 map和set 1、set1.1、set简介1.2、set接口简介1.3、set的使用1.4、set其他接口的使用1.5、multiset 2、map2.1、map简介2.2、pair使用2.3、map接口使用2.4、multimap 1、set 1.1、set简介 如图:set是类模板,参数T表示存储的数据类型&#x…

【Research Proposal】基于提示词方法的智能体工具调用研究——研究问题

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯研究问题1. 如何优化提示词方法以提高智能体的工具调用能力?2. 如何解决提示词方法在多模态任务中的挑战?3. 如何通过提示词优化智能体…

PLC数据采集网关(三格电子)

产品概述 PLC转Modbus网关型号SG-PLC-Private(PLC私有协议网关),是三格电子推出的工业级网关(以下简称网关),主要用于在不需要对PLC编程的情况下将PLC数据映射到Modbus TCP(映射的方式符合PLC工程师使用习惯…

【HBase】HBaseJMX 接口监控信息实现钉钉告警

目录 一、JMX 简介 二、JMX监控信息钉钉告警实现 一、JMX 简介 官网:Apache HBase ™ Reference Guide JMX (Java管理扩展)提供了内置的工具,使您能够监视和管理Java VM。要启用远程系统的监视和管理,需要在启动Java…

Qt开发⑥Qt常用控件_下_多元素控件+容器类控件+布局管理器

目录 1. 多元素控件 1.1 ?Widget 和 ?View 之间的区别 1.2 List Widget 纵向列表 1.3 Table Widget 表格 1.4 Tree Widget 树形控件 2. 容器类控件 2.1 Group Box 分组框 2.2 Tab Widget 标签页控件 3. 布局管理器 3.1 垂直布局QVBoxLayout 3.2 水平布局QHBoxLayo…

科普mfc100.dll丢失怎么办?有没有简单的方法修复mfc100.dll文件

当电脑频繁弹窗提示“mfc100.dll丢失”或应用程序突然闪退时,这个看似普通的系统文件已成为影响用户体验的核心痛点。作为微软基础类库(MFC)的核心组件,mfc100.dll直接关联着Visual Studio 2010开发的大量软件运行命脉。从工业设计…

并行计算考前复习整理

并行计算考前复习整理 (lwg老师会在最后一节课跟大家讲考点,考试考的东西不会在考点之外,这里面我整理的内容已经将考点全部囊括,最终100分) 一、向量求和函数 C语言的串行化实现 CUDA的并行化实现 1、问题一&am…

Windows - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式

Windows(奇思妙想) - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式 前言 Windows启用OpenSSH客户端后就可以通过SSH的方式访问Windows了。但是通过SSH启动的程序: 无法显示图形界面会随着SSH进程的结束而结束 于是想到了一种通过执行“计划…

[C#]C# winform部署yolov12目标检测的onnx模型

yolov12官方框架:github.com/sunsmarterjie/yolov12 【测试环境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.3 【效果展示】 【调用代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.…

51单片机-按键

1、独立按键 1.1、按键介绍 轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。 1.2、独立按键原理 按键在闭合和断开时,触点会存在抖动现象。P2\P3\P1都是准双向IO口,…

Baklib云智协同:数字资产赋能企业效能跃升

内容概要 在数字化转型加速的背景下,Baklib通过构建智能化的知识中台架构,为企业打造了贯穿知识采集、整合、应用的全链路解决方案。该平台以动态知识图谱为核心技术底座,支持文档、音视频、代码等20余种格式的数字资产全生命周期管理&#…

Windows10配置C++版本的Kafka,并进行发布和订阅测试

配置的环境为:Release x64下的环境 完整项目:https://gitee.com/jiajingong/kafka-publisher 1、首先下载相应的库文件(.lib,.dll) 参考链接: GitHub - eStreamSoftware/delphi-kafka GitHub - cloade…

基于云的物联网系统用于实时有害藻华监测:通过MQTT和REST API无缝集成ThingsBoard

论文标题 **英文标题:**Cloud-Based IoT System for Real-Time Harmful Algal Bloom Monitoring: Seamless ThingsBoard Integration via MQTT and REST API **中文标题:**基于云的物联网系统用于实时有害藻华监测:通过MQTT和REST API无缝集…

构建医疗Mini DeepSeek R1:用强化学习训练

构建 医疗迷你 DeepSeek R1:用强化学习训练 在当今快速发展的技术时代,大语言模型(LLMs)与医疗的结合带来了无限的机遇和独特的挑战。本文探索如何利用 Group Relative Policy Optimization(GRPO)——由 D…

在mfc中使用自定义三维向量类和计算多个三维向量的平均值

先添加一个普通类, Vector3.h, // Vector3.h: interface for the Vector3 class. // //#if !defined(AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_) #define AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_#if _MSC_VER > 1000 #p…

DeepSeek、微信、硅基流动、纳米搜索、秘塔搜索……十种不同方法实现DeepSeek使用自由

为了让大家实现 DeepSeek 使用自由,今天分享 10 个畅用 DeepSeek 的平台。 一、官方满血版:DeepSeek官网与APP 首推,肯定是 DeepSeek 的官网和 APP,可以使用满血版 R1 和 V3 模型,以及联网功能。 网址: htt…

Solon Cloud —— 介绍

说明 前面的章节,我们讲解了 Solon 的开发应用,接下来准备讲解 Solon Cloud 的的开发。Solon Cloud 是为微服务和云原生准备的分布式开发套件。 微服务 就像 MVC 一样,对于微服务的理解也是有不同的。微服务是一组协调工作的小而自治的服务…