写点什么

从小型网站到超大规模网站的 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:1913711
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

复杂Gremlin查询的调试方法

Tom(⊙o⊙)

gremlin调试

InfoQ & 声网Agora 技术开放日邀请函

Jessie

音视频 声网

网络攻防学习笔记Day1

穿过生命散发芬芳

5月日更 网络攻防

将本地文件/文章上传到 GitHub 的流程

彭宏豪95

git GitHub 效率 编程

鹅厂疯子整理了万字Java笔记!小白:硬核资源基础知识已入门

牛哄哄的java大师

Java Object

了解代理服务器

进击的梦清

nginx Linux 运维 代理原理

A “word-wrap” functionality(一个字符串包裹函数)

HoneyMoose

名可名

顿晓

5月日更 命名

2021年十大突破性技术

石云升

读书笔记 5月日更

如何在 GitHub 上面为你的项目选择开源许可证

HoneyMoose

超硬核!阿里技术大牛肝了2晚整理的Java知识,这也太强了!

飞飞JAva

Java Java泛型

技术探索系列 - 轻松带你掌握 JMM(1)

码界西柚

Java JVM JMM 并发 5月日更

Redis-技术专区-知识问题总结大全(上篇)

码界西柚

redis 5月日更 问题分析

OAuth 2.0 了解了,OAuth 2.1 呢?

Zhang

OAuth 2.0 认证授权 OAuth 2.1

Excel用户如何学习数据分析语言DAX?

博文视点Broadview

如何选择开源许可证

HoneyMoose

从零搭建一款PC页面编辑器PC-Dooring

徐小夕

大前端 可视化 lowcode 代码编辑器

【人间碎片】关于努力这件事

南吕

人生修炼 人生故事

BPF 之巅:洞悉 Linux 系统和应用性能

博文视点Broadview

外行在谈论流派,大师在讨论颜料

顿晓

极限编程 5月日更 门道

当你觉得老板的决策是错的,你会怎么做?

石云升

职场经验 5月日更

限时白嫖!腾讯内部员工培训Java资料,网友:大厂就是不一样

牛哄哄的java大师

Java

当代软件IT大学生的技术学习之路

Nydia

签约计划

fastadmin+xunsearch题库系统搭建教程

一颗小树

php thinkphp fastadmin xunsearch 题库系统

手机屏幕投屏到桌面的离线方案

黄敏

【LeetCode】员工的重要性Java题解

Albert

算法 LeetCode 5月日更

北美亚特兰大一金融服务公司面试总结

HoneyMoose

本文标题不能描述本文内容

小天同学

读书 哲学 读后感 4月日更

你的烂代码终于有了解决方案

博文视点Broadview

书单 | 月度畅销好书,助你技能满格,摆脱低效,走向财富人生

博文视点Broadview

SwiftUI @ Netflix:推动新技术落地是怎样一种体验?

故胤道长

swift 移动开发 iOS Developer SwiftUI

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