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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介:

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

根据不同的服务规模:用户和会话管理、电子商务、分析类应用 (多结构数据)和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集群和数据存储设备的建议,再就是用于监控、备份和集群管理的解决方案。

 原文发布时间为:2013-04-04

本文来自云栖社区合作伙伴“Linux中国”

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
5月前
|
JSON 文字识别 BI
如何开发车辆管理系统中的加油管理板块(附架构图+流程图+代码参考)
本文针对中小企业在车辆加油管理中常见的单据混乱、油卡管理困难、对账困难等问题,提出了一套完整的系统化解决方案。内容涵盖车辆管理系统(VMS)的核心功能、加油管理模块的设计要点、数据库模型、系统架构、关键业务流程、API设计与实现示例、前端展示参考(React + Antd)、开发技巧与工程化建议等。通过构建加油管理系统,企业可实现燃油费用的透明化、自动化对账、异常检测与数据分析,从而降低运营成本、提升管理效率。适合希望通过技术手段优化车辆管理的企业技术人员与管理者参考。
|
5月前
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
4月前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
5月前
|
消息中间件 JavaScript 前端开发
如何开发ERP(离散制造-MTO)系统中的技术管理板块(附架构图+流程图+代码参考)
本文详解ERP(离散制造-MTO)系统中的技术管理板块,涵盖产品定义、BOM、工序、工艺文件及变更控制的结构化与系统化管理。内容包括技术管理的核心目标、总体架构、关键组件、业务流程、开发技巧与最佳实践,并提供完整的参考代码,助力企业将技术数据转化为可执行的生产指令,提升制造效率与质量。
|
5月前
|
监控 供应链 前端开发
如何开发ERP(离散制造-MTO)系统中的财务管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO企业ERP系统中财务管理模块的搭建,聚焦应收账款与应付账款管理,涵盖核心功能、业务流程、开发技巧及Python代码示例,助力企业实现财务数据准确、实时可控,提升现金流管理能力。
|
5月前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
5月前
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。
|
5月前
|
消息中间件 JavaScript BI
如何开发ERP(离散制造-MTO)系统中的客户管理板块(附架构图+流程图+代码参考)
本文详解离散制造-MTO模式下ERP系统客户管理模块的设计与实现,涵盖架构图、流程图、功能拆解、开发技巧及TypeScript参考代码,助力企业打通客户信息与报价、生产、交付全链路,提升响应效率与订单准交率。
|
5月前
|
JSON 前端开发 关系型数据库
如何开发ERP(离散制造-MTO)系统中的销售管理板块(附架构图+流程图+代码参考)
针对离散制造MTO模式,销售管理是业务核心入口,贯穿报价、订单、ATP、排产与交付。本文详解其架构设计、关键流程、数据模型及开发实践,助力企业提升交付准确率与运营效率。

热门文章

最新文章

推荐镜像

更多