写点什么

从小型网站到超大规模网站的 MySQL 参考架构

  • 2013-03-18
  • 本文字数:1367 字

    阅读完需:约 4 分钟

Oracle 发布《面向大规模可伸缩网站基础设施的MySQL 参考架构》白皮书,针对将MySQL 用作数据存储的不同类型和不同规模的网站给出了推荐的拓扑结构。

根据分别提供4 类服务——用户和会话管理、电子商务、分析类应用 (多结构数据) 和CMS(元数据)——的网站的规模和可用性要求(如下表所示),这份白皮书给出了4 个参考架构。

请注意,这里给出的指导方针只是基本建议,实际应用中需要根据读写模式、负载平衡和所用的缓存机制等因素进行调整。

小型(Small)网站参考架构

这一参考架构可用于上述4 类网站的所有小型实现。可以使用MySQL Replication 来制作数据的副本以支持备份和分析。

中型(Medium)网站参考架构

在这种情况下,推荐针对不同类型的活动选择独立的基础设施,考虑每个MySQL 服务器最多支持8 个应用服务器,如果因伸缩性需求应用服务器数量增加,则添加更多的MySQL 从服务器。

为满足会话管理网站和电子商务网站的高可用性要求,可以使用 Linux 心跳(Heartbeat)和半同步复制。CMS 网站通常对读操作的向外扩展有更高要求,假定每个 MySQL 从服务器最多可以处理 3000 个并发用户,白皮书建议为每个 MySQL 主服务器添加 20-30 个从服务器。CMS 系统可将数据保存在一个 SAN 中,或者保存在连接到该服务器的分布式设备中。

会话管理网站和 CMS 网站推荐使用 Memcached,这有助于减轻应用服务器和 MySQL 服务器的负担。

分析类网站的拓扑结构简单一些,1 个主服务器加 3 个从服务器就能解决问题。

大规模(Large)网站参考架构

针对大规模网站,白皮书推荐使用 MySQL Geographic Replication 来进行跨数据中心的数据库复制,这种方式支持跨越地理上分离的集群进行异步复制。

会话管理网站和电子商务网站应该使用集群,白皮书声称“4 个数据节点,1 秒可以支持 6000 个会话(页面点击),其中每次页面点击生成 8–12 个数据库操作”。大规模 CMS 网站使用的配置与中型网站类似,只是必要时需要多添加一些从服务器。针对分析类应用,这里引入了一个数据提炼(Data Refinery)单元,用于数据的清理和组织。

超大规模(Extra Large)网站参考架构

针对社交网站,白皮书也给出了相应建议。它声称“网络上流量最大的 10 个网站有 9 个部署了 MySQL,其中包括 Google、Facebook 和 YouTube”,但是没有说明这些网站用 MySQL 干什么,不过众所周知的是,LinkedIn 成功应用了 MySQL。

社交网站的拓扑结构利用了中型和大规模网站中实现的概念,包括专用应用服务器、Memcached 和数据提炼单元, 但为支持写操作的向外扩展引入了分片(Shard)。MySQL 集群被用于用户的认证和查找,当“用于查找的键(key)不止 1 个”时,直接读写相应的分片。

MySQL 主服务器和从服务器的推荐规格如下:

  • 8–16 个 x86-64 位 CPU 核心(MySQL 5.5 及以上)。
  • 4–8 个 x86 -64 位 CPU 核心(MySQL 5.1 及更早版本)。
  • 比活动数据多 3–10 倍的内存。
  • Linux、Solaris 或 Windows 操作系统。
  • 最少 4 块磁盘,8–16 块磁盘能增加 I/O 密集型应用的性能。
  • 支持电池供电高速缓存的硬件 RAID。
  • 推荐使用 RAID 10。如果负载为读密集型,RAID 5 也是合适的。
  • 2 个网卡和 2 个供电单元用作冗余。

另外,白皮书还有一些针对 MySQL 集群和数据存储设备的建议,再就是用于监控、备份和集群管理的解决方案。

查看英文原文 MySQL Reference Architectures for Small to Extra Large Websites

2013-03-18 04:1913573
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 142.9 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

鸿蒙轻内核源码分析:掌握信号量使用差异

华为云开发者联盟

鸿蒙 数据结构 信号量 结构体 OpenHarmony

理解Linux 终端、终端模拟器和伪终端

mazhen

Linux Shell SSH Linux Kenel

Mtail导致Nginx报警延迟

BUG侦探

运维 监控 日志

点通生活系统软件开发搭建

阿里P9看了都说牛B!阿里巴巴史上最牛的分布式核心原理深度解析全彩手册

Java架构追梦

Java 阿里巴巴 架构 面试 分布式核心原理解析

程序员的自我修养-用科学的方法提高交付质量

刘绍

程序员 软件工程 软件质量 TDD 单元测试

高并发应对策略系列文章阶段汇总,提供离线文档下载

Coder的技术之路

发布60分钟!霸榜Github的阿里面试参考指南,啃透涨薪10k

Java架构师迁哥

10万QPS,K6、Gatling和FunTester对比测试

FunTester

性能测试 接口测试 测试框架 压力测试 测试开发

闭关三月!啃透美团保姆级分布式进阶技术手册,终入美团定L8

Java 面试

经过一年的不懈努力社招进了阿里,我总结了50个Java面试必考题

Java 程序员 架构 面试

喜马拉雅亿级用户量的离线消息推送系统架构设计实践

JackJiang

消息推送 即时通讯 IM push

工商银行:应用多k8s集群管理及容灾实践

华为云开发者联盟

容器 多云 工商银行 k8s集群 Karmada

直击技术最前沿 | Amazon S3增加新的存档访问层

亚马逊云科技 (Amazon Web Services)

亚马逊云科技和 Verizon 利用专有 MEC 解决方案扩大 5G 合作

亚马逊云科技 (Amazon Web Services)

从零开始学习3D可视化之摄像机投影方式

ThingJS数字孪生引擎

大前端 可视化 3D 数字孪生

一文读懂大数据实时计算

五分钟学大数据

实时计算 7月日更

阿里P7大牛手把手教你!卧薪尝胆70天内推入职阿里

欢喜学安卓

android 程序员 面试 移动开发

阿里P7亲自讲解!Android大厂面试真题解析大全

欢喜学安卓

android 程序员 面试 移动开发

全美第四大无线运营商 DISH 和亚马逊云科技开展战略合作

亚马逊云科技 (Amazon Web Services)

架构实战营模块8作业

eoeoeo

架构实战营

详解 nebula 2.0 性能测试和 nebula-importer 数据导入调优

NebulaGraph

数据库 开源 图数据库

铂金10:能工巧匠-ThreadLocal如何为线程打造私有数据空间

MetaThoughts

Java 后端 多线程 并发

Eureka可用性解读

赵镇

Eureka

FIL币最新价格怎么样?FIL币最新消息是什么?

台达DOP-100系列触摸屏(LUA程序编写用户管理应用)

林建

lua 台达 触摸屏 用户管理 DOP-100

夏令营|第五届埃文网络安全技能训练营火热报名中

郑州埃文科技

架构实战营-模块八-作业

大可

英特尔中国研究院宋继强:AI技术已成为推动数字化转型的超级力量|WAIC 2021

E科讯

阿里新出炉爆款的顶配版Spring Security笔记,肝完变秃也变强

Java spring 编程 架构

你见过最具有代表性的面试是什么样的?大三4面上岸腾讯(Java岗)

Java架构师迁哥

从小型网站到超大规模网站的MySQL参考架构_数据库_Abel Avram_InfoQ精选文章