一种负载均衡的方法及系统的制作方法_2

文档序号:9330370阅读:来源:国知局
livednginx主服务器故障,切换到所述keepalivednginx 备份服务器。
[0062]所述keepalivednginx主服务器,是指在服务器上安装了软件keepalived和软件nginx,
[0063]软件keepalived用于检测服务器的状态,如果有服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,
[0064]当主服务器宕机时,keepalived检测到后,立即把外网VIP和内网VIP绑定到备机上。此时由于外网VIP已经转移到了备机上,前端请求将发送给备机。
[0065]软件nginx对于静态资源请求就直接在本机检索并返回,对于php的动态请求,则负载均衡到后端的中间件服务器上。
[0066]通过软件ke印alived实现了对服务器的检测,当服务器故障时,可以做到主备切换,软件nginx实现了访问的分流,对于静态的访问,可以在本机检索,对于动态的访问,分流给后端的中间件服务器。
[0067]在切换前或者切换后,对各级主服务器的访问进行分流。从而可以减小各级的服务器的负载。
[0068]可选地,在切换前,对各级服务器的访问进行分流,包括:
[0069]如果所述keepalivednginx主服务器接收到php动态请求消息,则将所述php动态请求消息转发到第一中间件服务器和第二中间件服务器处理;
[0070]如果所述第一中间件服务器接收到所述php动态请求消息中包含SQL请求,则所述第一中间件服务器将所述SQL请求转发到Atlas主服务器;
[0071]如果所述第二中间件服务器接收到所述php动态请求消息中包含SQL请求,则所述第二中间件服务器将所述SQL请求转发到Atlas从服务器。
[0072]可选地,
[0073]所述Atlas主服务器,将所述SQL请求中的写请求发送到Mysql主数据库服务器;
[0074]所述Atlas主服务器,将所述SQL请求中的读请求发送到Mysql从数据库服务器;
[0075]所述Atlas从服务器,将所述SQL请求中的写请求发送到Mysql主数据库服务器;
[0076]所述Atlas从服务器,将所述SQL请求中的读请求发送到Mysql从数据库服务器。
[0077]可选地,在切换后,对各级服务器的访问进行分流,包括:
[0078]如果所述keepalivednginx备份服务器接收到php动态请求消息,则转发到第一中间件服务器和第二中间件服务器处理;
[0079]如果所述第一中间件服务器接收到所述php动态请求消息中包含SQL请求,则所述第一中间件服务器将所述SQL请求转发到Atlas主服务器;
[0080]如果所述第二中间件服务器接收到所述php动态请求消息中包含SQL请求,则所述第二中间件服务器将所述SQL请求转发到Atlas从服务器。
[0081]可选地,
[0082]所述Atlas主服务器,将所述SQL请求中的写请求发送到Mysql主数据库服务器;
[0083]所述Atlas主服务器,将所述SQL请求中的读请求发送到Mysql从数据库服务器;
[0084]所述Atlas从服务器,将所述SQL请求中的写请求发送到Mysql主数据库服务器;
[0085]所述Atlas从服务器,将所述SQL请求中的读请求发送到Mysql从数据库服务器。
[0086]Atlas服务器,包括Atlas主服务器、Atlas从服务器;在服务器上安装了软件Atlas,软件Atlas可以实现读写的分离。
[0087]采用atlas来实现读写分离的功能,使用keepalived来实现高可用的功能。Atlas是一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。Keepalived的作用是检测服务器的状态,如果有一台服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,当服务器工作正常后Ke^alived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
[0088]图2为本发明的系统图;
[0089]一种负载均衡系统,包括检测模块,keepalivednginx主服务器Ikeepalivednginx备份服务器2 ;
[0090]所述检测模块,用于对所述keepalivednginx主服务器I进行检测,检测到所述keepalivednginx主服务器I故障,切换到所述keepalivednginx备份服务器2 ;
[0091]当所述keepalivednginx主服务器I恢复,则切换回所述keepalivednginx主服务器I ;
[0092]在切换前或者切换后,对各级服务器的访问进行分流。
[0093]可选地,还包括第一中间件服务器3、第二中间件服务器4、Atlas主服务器5、Atlas从服务器6、Mysql主数据库服务器7、Mysql从数据库服务器8 ;
[0094]当所述检测模块检测到所述keepalivednginx主服务器I故障之前,对各级服务器的访问进行分流,包括:
[0095]如果所述keepalivednginx主服务器I接收到php动态请求消息,则将所述php动态请求消息转发到第一中间件服务器3和第二中间件服务器4处理;
[0096]如果所述第一中间件服务器3接收到所述php动态请求消息中包含SQL请求,则所述第一中间件服务器3将所述SQL请求转发到Atlas主服务器5 ;
[0097]如果所述第二中间件服务器4接收到所述php动态请求消息中包含SQL请求,则所述第二中间件服务器4将所述SQL请求转发到Atlas从服务器6。
[0098]可选地,
[0099]所述Atlas主服务器5,用于将所述SQL请求中的写请求发送到Mysql主数据库服务器7 ;
[0100]所述Atlas主服务器5,将所述SQL请求中的读请求发送到Mysql从数据库服务器8 ;
[0101]所述Atlas从服务器6,用于将所述SQL请求中的写请求发送到Mysql主数据库服务器7 ;
[0102]所述Atlas从服务器6,将所述SQL请求中的读请求发送到Mysql从数据库服务器8。
[0103]Mysql从数据库服务器8、Mysql主数据库服务器7,两者进行数据同步。
[0104]可选地,还包括第一中间件服务器3、第二中间件服务器4、Atlas主服务器5、Atlas从服务器6、Mysql主数据库服务器7、Mysql从数据库服务器8 ;
[0105]当切换到keepalivednginx备份服务器2之后,对各级服务器的访问进行分流,包括:
[0106]如果所述keepalivednginx备份服务器2接收到php动态请求消息,则将所述php动态请求消息转发到第一中间件服务器3和第二中间件服务器4处理;
[0107]如果所述第一中间件服务器3接收到所述php动态请求消息中包含SQL请求,则所述第一中间件服务器3将所述SQL请求转发到Atlas主服务器5 ;
[0108]如果所述第二中间件服务器4接收到所述php动态请求消息中包含SQL请求,则所述第二中间件服务器4将所述SQL请求转发到Atlas从服务器6。
[0109]可选地,
[0110]所述Atlas主服务器5,将所述SQL请求中的写请求发送到Mysql主数据库服务器
7;
[0111]所述Atlas主服务器5,将所述SQL请求中的读请求发送到Mysql从数据库服务器
8;
[0112]所述Atlas从服务器6,将所述SQL请求中的写请求发送到Mysql主数据库服务器7 ;
[0113]所述Atlas从服务器6,将所述SQL请求中的读请求发送到Mysql从数据库服务器8。
[0114]本发明通过主要是由keepalived实现双机高可用,维护了一个外网VIP, —个内网VIP。正常情况时,外网VIP和内网VIP都绑定在nagix服务器,前端请求发送到主服务器的nginx上,n
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1