设为首页 收藏本站
查看: 3004|回复: 0

[经验分享] 企业应用总结(一):双机热备

[复制链接]

尚未签到

发表于 2017-2-19 08:36:34 | 显示全部楼层 |阅读模式
1       背景
  由于在企业应用中,双机热备与负载均衡是常见的两种服务器集群模式,两者经常被一起提到但是场景并不相同。初学者经常将二者混为一体,故在此加以说明。
2       双机热备
2.1     概述
  双机热备的服务场景为高可用性,其目的是保证当前运行的服务器出现故障无法访问的时候,热备集群切换至另外一台备用服务器,双机热备在硬件上最少需要两台服务器。
2.2     工作模式
  热备集群在生产环境中,不论有多少热备服务器,始终只有一台服务器对外提供服务,其他服务器处于待命状态。只有当主服务器出现问题的时候,监控程序才会唤醒其他一台备用服务器。
  热备软件工作模式有以下两种
2.2.1     主从互备

图一:主从模式备份

  主从互备模式下,明确区分主机与备机,当主机运行时,备机处于待命状态。当主机从异常中恢复后,业务请求会自动切换至主机,备机继续处于待命状态。
  该模式主要用于有明确主从要求的生产环境中,如高低配置主从服务器。
2.2.2     互为主从

图二:互为主从模式

  相比于主从模式,互为主从模式即为所有服务器的访问权值一致,当一台服务器宕机后另外一台服务器成为主机,并且除非这台服务器再发生宕机的,不然原有的服务器从异常恢复后将成为一台备机。在两台服务器硬件及环境资源一致的情况下,可以使用互为主从的方式进行热备。
2.3     热备方案
2.3.1     共享存储方案

图三:单节点共享存储

  共享存储方案为热备集群采用同一个共享存储作为数据共享存储。采用该方案是需要注意,当共享存储发生故障时,整个热备集群将直接崩崩溃。
2.3.2     冗余共享存储方案

图四:冗余共享存储

  冗余共享存储在服务器集群的基础上,引入了存储集群。服务器之间做热备的同时,存储之间也作数据的完全冗余拷贝。该方案可以实现真正的7*24小时无间断服务,且在主机切换时理论上可以实现无数据丢失。但该方案无法实现异地容灾互备,并且贵。
2.3.3     拷贝方案

图五:拷贝方案

  使用拷贝方案时,服务器之间无共享存储,而是采用自身存储设备(本机硬盘或外界存储)。同时为了保障两台备机与主机之间的数据资源保持一致,需要通过网络进行实时的数据远程备份。因此拷贝模式下,数据具有一定的延迟性。
2.4     注意事项
  1、  热备方案中,主机切换到从机后,从机并非恢复主机上的服务,而是重新启动新的服务。因此主机原有的运行状态在从机中并不存在。
  2、  在数据库热备方案中,结合数据库主键的产生方式(mysql的字增以及oracle的序列),需要尽量避免主从机的频繁切换,进而避免主键冲突错误(此时即可采用主从模式)。
  3、  在采用拷贝方案的情况下,需要考虑数据的时效性,需要能够承受数据的少量永久/暂时丢失。
3       负载均衡
3.1     概述
  负载均衡的使用场景为高并发场景。负载均衡是为了解决高并发场景下单个应用服务的性能瓶颈问题。区别于热备需要两台应用服务器,负载均衡是由一个反向代理服务和多个应用容器组成的,可以在一台服务器上实现负载均衡集群。
3.2     负载方案
3.2.1     软件负载方案
  软件负载方案是采用软件进行负载分发。常见的软件负载方案有LVS、NGINX、APACHE、WEBLOGIC等方案。
3.2.2     硬件负载方案
  最为常见的硬件负载方案为F5,但负载均衡只是F5的一部分功能。
3.3     算法
  负载均衡常见算法有直接轮询、加权轮训、HASH分配、性能分配等几种。
3.3.1     直接轮询RR
  采用轮询的方式进行请求分发,为A-B-C-A-B-C的方式,该方式不考虑服务器的实际运行情况及现有压力。
3.3.2     加权轮询WRR
  人工设置后台服务器的访问权值,按照分配的权值比例通过轮询方式分配访问请求。
3.3.3     IP-HASH
  根据访问客户端的访问IP,每个IP每次访问的都是固定的服务器。该方案相对降低了负载的性能。
3.3.4     URL-HASH
  绑定每个URL请求地址的处理服务器,该方案有利于提高后台服务器缓存。
3.3.5     FAIR
  根据服务器的响应性能进行请求分配,并根据服务器的响应性能动态调整转发策略。
3.4     注意实现
  1、  集群缓存处理
  a)       session缓存
  在不采用iphash的情况下,需要注意应用集群中的session共享问题,避免出现登录凭证丢失的问题。
  b)       查询缓存
  在使用ORM框架中,为了提高查询效率,减轻数据库负担,需要对部分查询开启查询缓存。应用集群需要采用支持缓存共享的缓存技术,避免出现脏读/脏写的情况。
  2、  集群任务处理
  由于负载集群中,集群中的应用是同时运行,因此应用服务中的任务也是同时多出运行。为了避免一个任务多次执行,可以结合集群应用均能访问到的数据库/文件,采用信号量PV操作方式,争用信号量来执行/放弃任务。
  3、  集群文件处理
  在涉及文件操作的应用场景中,需要考虑整应用集群对文件的可访问性与可操作性。考虑使用共享文件存储方式存储文件。
4       备注
  由于在热备方案中至少需要两台或两台以上主机,因此在使用热备方案的同时,将主从服务器部署为负载集群,提高服务器利用率。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-344043-1-1.html 上篇帖子: SpringMVC中拦截/和拦截/*的区别 下篇帖子: dubbox 的各种管理和监管
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表