写点什么

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

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

关注

评论

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

电商秒杀系统设计

石小天

C++最佳实践 | 7. 正确性和脚本

俞凡

c++ 最佳实践

再议String-字符串常量池与String

爱好编程进阶

程序员 后端开发

探秘智慧民航:融云助力“中国第一国门”数字化转型记

融云 RongCloud

API 工程化分享

郑子铭

golang protobuf Cloud Native

架构实战营 - 电商秒杀系统

邹玉麒

冷门的 Java 应用程序安全沙箱机制了解一下

爱好编程进阶

Java 程序员 后端开发

漫谈数据安全-老板担心敏感数据泄露,该如何建设数据的安全体系?

王老狮

大数据 Clickhouse 数据安全

毕业设计秒杀系统架构

Geek_28cf33

架构实战营毕业项目

哈啰–J

C++最佳实践 | 6. 性能

俞凡

c++ 最佳实践

架构营毕业总结

Geek_28cf33

架构实战营毕业总结

哈啰–J

[架构7期] - 模块一练习

极客土豆

架构实战营-毕业总结

yhjhero

#架构训练营

SpringBoot之:SpringBoot的HATEOAS基础

程序那些事

Java Spring Boot 程序那些事 5月月更

架构训练营总结

邹玉麒

「架构实战营」

javaAOP

工程师日月

java 并发 5月月更

架构训练营毕业设计—电商秒杀系统

yhjhero

#架构训练营

为 SaaS 企业提供 SaaS 服务

Authing

【刷题第九天】20. 有效的括号

白日梦

5月月更

C语言_文件IO操作函数总结

DS小龙哥

5月月更

服务日志规范

en

日志

架构实战营模块8作业

哈啰–J

业务学习-车企数字化转型调研

第519区

数字化生态 数据产品 汽车制造

二、面向云原生环境的安全体系

穿过生命散发芬芳

云原生安全 5月月更

ConcurrentHashMap

急需上岸的小谢

5月月更

[数据分析实践]-音频分析-BirdCLE-3

浩波的笔记

人工智能 技术分析

架构实战营模块6作业

哈啰–J

架构实战训练营毕业总结

石小天

毕业设计项目:设计电商秒杀系统

炎彬

「架构实战营」

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