双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

ID:47421838

大小:140.05 KB

页数:17页

时间:2019-09-13

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计_第1页
双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计_第2页
双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计_第3页
双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计_第4页
双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计_第5页
资源描述:

《双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计原文出处: 朱茂海   架构简介前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上。于是设计了如下的架构。此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP。正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的nginx,nginx对于静态资源请求就直接在本机检索并返回,对于php的动态请求,则负载均衡到server1和serv

2、er2。对于SQL请求,会将此类请求发送到AtlasMySQL中间件,Atlas接收到请求之后,把涉及写操作的请求发送到内网VIP,读请求操作发送到mysql从,这样就实现了读写分离。当主服务器server1宕机时,keepalived检测到后,立即把外网VIP和内网VIP绑定到server2,并把server2的mysql切换成主库。此时由于外网VIP已经转移到了server2,web请求将发送给server2的nginx。nginx检测到server1宕机,不再把请求转发到server1的php-fpm。之后的sql请求照常发送给本地的atlas,atlas把写

3、操作发送给内网VIP,读操作发送给mysql从,由于内网VIP已经绑定到server2了,server2的mysql同时接受写操作和读操作。当主服务器server1恢复后,server1的mysql自动设置为从,与server2的mysql主同步。keepalived不抢占server2的VIP,继续正常服务。架构要求 要实现此架构,需要三个条件:·1、服务器可以设置内网IP,并且设置的内网IP互通;·2、服务器可以随意绑定IDC分配给我们使用的外网IP,即外网IP没有绑定MAC地址;·3、MySQL服务器支持GTID,即MySQL-5.6.5以上版本。环境说明se

4、rver1·eth0:10.96.153.110(对外IP)·eth1:192.168.1.100(对内IP)server2·eth0:10.96.153.114(对外IP)·eth1:192.168.1.101(对内IP)系统都是CentOS-6。对外VIP: 10.96.153.239对内VIP: 192.168.1.150hosts设置/etc/hosts:192.168.1.100server1192.168.1.101server2NginxPHPMySQLMemcached安装这几个软件的安装推荐使用EZHTTP来完成。解决session共享问题php默

5、认的session存储是在/tmp目录下,现在我们是用两台服务器作php请求的负载,这样会造成session分布在两台服务器的/tmp目录下,导致依赖于session的功能不正常。我们可以使用memcached来解决此问题。上一步我们已经安装好了memcached,现在只需要配置php.ini来使用memcached,配置如下,打开php.ini配置文件,修改为如下两行的值:12session.save_handler=memcachesession.save_path="tcp://192.168.1.100:11211,tcp://192.168.1.101:1

6、1211"之后重启php-fpm生效。Nginx配置Server1配置1234567891011121314151617181920http{[...]    upstreamphp-server{          server192.168.1.101:9000;          server127.0.0.1:9000;          keepalive100;    }[...]server{    [...]        location~.php${                        fastcgi_pass  php-server

7、;                        fastcgi_index  index.php;                        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;                        include        fastcgi_params;        }    [...]}[...]}Server2配置1234567891011121314151617181920http{[...]    upstreamph

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。