本文章已收录至本站专栏
服务器集群系列
0、为什么需要组网
在数据库服务器的配置中,对数据库服务器性能影响较大的有:
CPU:数据库查询和修改操作都需要消耗大量的CPU资源,另外数据库都是多线程应用程序,使用SMP(对称多处理)系统能够提供更好的性能。CPU缓存结构也很重要,因为数据库的对缓存的点击率是很高的。
内存:最重要的性能因素。数据库需要大量的内存来缓存数据。如果服务器没有足够的内存来作为数据缓存,将使用磁盘子系统作缓存,磁盘子系统的访问速度比内存低很多,这样就会降低系统性能。内存太低,甚至会因为过于频繁的磁盘访问而导致服务器死机。配置256GB DDR3内存,以满足应用系统的数据缓存。
磁盘:即使内存很充足,系统还得执行大量的磁盘I/O,从硬盘中读取数据并写入修改的数据,因此磁盘的访问速度对性能影响也很大。
总之,引起服务器异常的因素很多,倘若以上因素其中一个出问题,该服务器就会不可用。何况,如果服务器厂商承诺的SLA是99%,一年内也会有 (365-365x99%)≈4天的时间不可用,这对用户、搜索引擎抓取的影响是很大的。
因此,在预算允许的情况下,我们应该组建服务器网络,配置负载均衡;搭建服务器监控,在一个节点挂掉的时候自动切换;搭建多机热备、一主多从的数据库网络。
1、可行性方案
本教程即将从以下几个方面,探究个人进行服务器组网的可行性研究,并给出解决方案。
以下是本系列的项目列表:
- 实现按解析线路分流
- 实现NGINX负载均衡
- 实现PHP负载均衡
- 实现MySQL一主多从
- 实现MySQL读写分离
敬请期待吧!
2、存在的问题
目前本站的服务器分布在中国大陆、中国香港、美国,并且在若干腾讯云账号名下。
因此,无法直接通过内网互联进行通讯,只能通过软件模拟内网,实际带宽为公网带宽。在实践中,我发现这样的组网方案存在延迟高的问题,在探究之后,我给出了在恶劣网络情况下的组网方案:
- WireGuard 组网
- DnsPod 智能解析分流
- Dnsmasq 管理本地DNS解析
- 宝塔负载均衡 网站回源
- 宝塔MySQL主从复制 数据库一主多从
- ProxySQL 数据库读写分离
可能需要准备:
- 至少2台Linux服务器(本站以5台为例)
- 升级服务器内核至 Kernel 5.x(本站统一使用kernel-ml-5.19)
- DnsPod账号(最好是专业版)
- 宝塔Linux面板企业版(建议使用开心版)
开始吧!
3、服务器选择
我的各服务器分布在腾讯云、阿里云和一些小厂的机房,因此组网很麻烦。
使用腾讯云,同地域云服务器享受5Gbps内网互联,轻量应用服务器享受1Gbps云联网。
最新优惠:
热门优惠产品:
【腾讯云】618采购季来袭!爆款云服务器18元起,参与活动享多重好礼
【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
其他推荐产品:
【腾讯云】轻量新用户上云福利,2核2G4M 低至 50 元/年 起, 抓住上云好时机!
服务器集群(一)服务器组网相关概念
评论