看多了应用服务的高可用架构,我们来看看数据库的高可用吧。 数据存储高可用的方案本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用。常见的高可用架构有主备、主从、主主、集群、分区等,接下来我们聊聊每种架构的优缺点。 整体架构简单,几乎所有的数据库都提供了主备复制的功能,例如Mysql、Oracle、MongoDB等。在这种架构中备库主要承担数据备份的作用,不参与实际业务读写操作,如果把备机改成主机需要人工操作。 优缺点分析 主备架构的优点 友链交易 就是简单,具体表现有: 对于客户端来说,不需要感知备机的存在,即使灾难恢复后,原来的备机被人工干预修改为主机,客户端只需要简单修改连接地址即可,应用架构不需要做任何改动; 主机和备机只需要进行数据复制,不需要进行状态判断和主备切换这类复杂操作。 这种架构的缺点也比较明显: 备机主要是用于数据备份,如果应用架构没有读写分离设计时会造成成本浪费 故障后需要人工干预,无法自动恢复,而人工处理效率又比较低,恢复过程也容易出错。 主从架构 主从架构与主备架构只有一字之差,但是对于实际应用架构差距却很大。在主备架构中备库不参与业务操作,而在主从架构中从库是需要参与业务操作的,应用架构需要做读写分离,将写操作写入主库,而读操作从从库读。 优缺点分析 这种架构在少量写和大量读时非常有用。可以把读分摊到多个备库上,减少主库的压力,直到从库给主库造成了太大的负担,或者主从之间的带宽成为瓶颈为止。 相比于主备架构,它有如下优点: 在主库故障时,读操作相关业务可以继续运行 从库对外提供读能力,发挥了硬件的性能 可以为不同的角色提供不同的从库 缺点: 主从架构中从库需要提供读业务,如果主从复制延迟大,数据会出现不一致情况; 应用架构需要做修改,一般会加入读写分离,复杂度比主备高; 故障后需要人工干预,无法自动恢复,而人工处理效率又比较低,恢复过程也容易出错。 引言 最近查阅 Serverless 相关资讯,注意到一个 Ruby Serverless 框架——Jets。 心中便有一些疑问:为什么会有这个项目?它是用来做什么的?作为一门小众语言,有哪些 Serverlss 平台支持了 Ruby 语言? 既然有这么多疑问,于是就想理一理 Ruby 与 Serverless 之间的关系,便开始书写此文。 Ruby 简介 Ruby,它由日本的松本行弘于1993年创立,它的 logo 是一颗闪亮、美丽的红宝石。 最近关于 Ruby 的最大新闻是:2020年12月25日,Ruby 3.0.0 正式发布。 其目标在更高的性能、并发性和更安全的类型。尤其是在性能上,Matz 表示「Ruby 3 会比 Ruby 2 倍」。 有哪些流行的项目是用 Ruby 开发的? 有哪些流行的项目是用 Ruby 开发的呢?这里首先要提的是全球著名的代码社交平台 Github,它是开源项目的沃土。 GitHub 最初就是使用 Ruby on Rails 构建的,它是 Ruby 社区创建的一个项目,Github 的流行 Ruby 社区功不可没。 值得一提的是,近些年,开发者在找工作时,有时 GitHub 开源项目经历也成了一个加分项。 类似的,作为 GitHub 的开源替代产品,Gitlab 支持私有化部署,它也是使用 Ruby on Rails 构建的。 如果要在内网搭建代码管理平台,GitLab 绝对是首选;曾经工作过的公司代码管理平台无一例外都是使用 GitLab 搭建的。 比较流行的 CI 服务,Travis CI 也是由 Ruby 开发的,它是一个托管的 CI 服务平台,与 GitHub 紧密集成。 使用过 GitHub 的开发者应该知道它,如果你在 GitHub 上有开源项目,就可以免费使用 Travis CI 构建自己的 CI 流水线。 Jekyll 是一个简单的博客形态的静态站点生成器,它也是使用 Ruby 开发的。 使用 GitHub Pages + Jekyll,可以轻而易举地在 GitHub 上免费发布网站。 当然还有很多使用 Ruby 开发的项目,一些 Ruby 开发的其他服务或应用 Jets 是一个 Ruby serverless 框架,可以让你轻松创建和部署服务。 它包括了构建 API 并将其部署到 AWS Lambda 所需要的一切。 Jets 也非常适合编写将 AWS 服务和资源粘合在一起的函数。 Jets 是一个脚手架,你只需要专注编写代码,Jets 会将代码转换为 Lambda 函数和其他 AWS 资源(如:API Gateway、S3、DynamoDB)。 AWS Lambda 支持许多事件触发器,下面是 Jets 支持的事件列表: CloudWatch Log Events CloudWatch Rule Events DynamoDB Events IoT Events Kinesis Events S3 Events SNS Events SQS Events Jets 可以构建许多体系结构。下面是传统的 Web 架构示例,可以使用 Jets 轻松完成
数据库高可用架构了解一下
来源:这里教程网
时间:2026-03-03 16:23:10
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- unable to extend table SYS.AUD$ by 1024 in tablespace SYSTEM
- 【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
26-03-03 - 干货 | 设计师必备中国风配色卡,快来收藏
干货 | 设计师必备中国风配色卡,快来收藏
26-03-03 - Thread 1 cannot allocate new log
Thread 1 cannot allocate new log
26-03-03 - Oracle database 19c中获取当前数据库版本的方法
Oracle database 19c中获取当前数据库版本的方法
26-03-03 - Oracle如何删除表中重复记录保留第一条
Oracle如何删除表中重复记录保留第一条
26-03-03 - Oracle网络服务基础(二)之监听器与TNS配置管理
Oracle网络服务基础(二)之监听器与TNS配置管理
26-03-03 - ORACLE 数据库业务用户密码重置慎用特殊字符
ORACLE 数据库业务用户密码重置慎用特殊字符
26-03-03 - oracle优化之生产系统不改代码解决SQL性能问题的几种方法
oracle优化之生产系统不改代码解决SQL性能问题的几种方法
26-03-03 - Oracle网络服务基础(一)之监听器概念
Oracle网络服务基础(一)之监听器概念
26-03-03
