关于如何设计一个高可用性(部分节点宕机仍然保证可用)的系统,整理下大致思路。
系统前端的设计中,采用比较通用的解决方案,Web服务器(如Apache)+ 应用服务器集群(Tomcat或者WebLogic)。
客户端(Client)连接Web服务器时需要考虑session的分布式管理,可以用Memcached与中间件结合提供session管理(可以扩展SessionManager或者自定义Filter来实现),为了避免Memcached服务器宕机,需要建立Memcached集群,通过magent进行代理,代理本身也支持集群,因此不需要考虑magent服务器也挂了的情况。
※ 注1:Memcached提供session管理,参考:使用memcached实现session远程分布式存储
※ 注2:Memcached作为应用的缓存层,本身设计就不实现冗余机制。参考:Memcached 集群架构问题归纳
※ 注3:magent是一款开源的Memcached代理服务器软件,使用总结: http://blog.s135.com/post/393/
※ 注4:Memcached + magent 的实现方式,参考:Memcached集群/分布式的单点故障
摘录如下
解决方案2:采用缓存代理服务器
采用 Magent 缓存代理,防止单点现象,缓存代理也可以做备份,通过客户端连接到缓存代理服务器,缓存代理服务器连接缓存服务器,缓存代理服务器可以连接多台Memcached机器可以将每台Memcached机器进行数据同步。这样的架构比较完善了,如果其中一台缓存代理服务器down机,系统依然可以继续工作,如果其中一台Memcached机器down掉,数据不会丢失并且可以保证数据的完整性,以上描述的系统架构如图所示:
在系统持久层的设计方案中,为了实现高可用性,需要提供数据库集群。
这里有两个方面的考虑,首先,多台DB服务器时提供负载均衡的实现。其次,数据的备份、同步,避免一台DB服务器宕机后数据丢失。
※ 注1:数据库的备份同步可以通过数据库本身完成(采取区域复制或者挖掘日志),也可以通过部分第三方同步方案完成。参考:Oracle 数据库之间数据同步方案
或者 SQLServer的集群实现
※ 注2:数据库基本都有实现集群方案,如Oracle的RAC,SQLServer的MSCS等,参考:数据库集群技术分析和比较
分享到:
相关推荐
高可用性、负载均衡的mysql集群解决方案
高可用性Linux集群实现 高可用性Linux集群实现 高可用性Linux集群实现
高可用集群解决方案为您提供帮助
本文档详细介绍了RabbitMQ + HAProxy 高可用集群部署方案
高可用性集群解决方案HA.doc
中标普华高可用性集群系统运行于两个或多个节点上。目的是在系统出现某些故障的情况下,仍能继续对外提供服务,最大限度地减少服务中断时间,用以提高系统可靠性、可用性、适用性。
linux 高可用性集群 高可用性集群方案
高可用性、负载均衡的mysql集群解决方案
惠普 HA cluster VC training 惠普高可用集群解决方案 (NXPowerLite),惠普最新的资料
linux高性能集群解决方案,MPI并行编程。
高可用性集群技术的分析,李文姣,亓峰,近年来,高可用性集群技术已广泛应用于各企业,企业对于计算机系统的高可用性要求也越来越高。本文基于对目前高可用性集群技术的
Linux下高可用集群方案很多,本文介绍的是性价比比较高的一种: 使用Heartbeat 2.0配置Linux高可用性集群。
一种高可用性冗余集群的关键技术及可信性分析
Windows高性能集群解决方案Windows高性能集群解决方案
高可用性是企业级服务器集群的一个重要元素,可以帮助在服务器宕机的情况下减小服务的 "downtime". 本文章从技术的角度,讲述了目前主流的Linux 发行版(Red Hat 和Novell)的高可用产品的构 架和特性。 适合读者: 中...
Redis高可用性解决方案之哨兵与集群.docx
根据实时集群系统的高可用性和实时性要求,考虑集群系统的网络拓扑结构和网络传输性能对系统实时性能的影响,设计和构建了一个高可用性冗余实时集群系统,对系统的网络拓扑结构设计进行了阐述,估算了网络的数据传输性能...
高可用性集群项目解决方案HA.pdf高可用性集群项目解决方案HA.pdf高可用性集群项目解决方案HA.pdf高可用性集群项目解决方案HA.pdf高可用性集群项目解决方案HA.pdf