关于如何设计一个高可用性(部分节点宕机仍然保证可用)的系统,整理下大致思路。
系统前端的设计中,采用比较通用的解决方案,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等,参考:数据库集群技术分析和比较
分享到:
相关推荐
2. KeepAlived 自动 failover:KeepAlived 是一个高可用集群解决方案,通过 KeepAlived,可以实现 MySQL 的自动 failover,从而确保集群系统的高可用性。 3. MySQL 双主互备模式:MySQL 双主互备模式是指两台 MySQL...
双机热备系统的意义在于提供高可用性和稳定性,避免系统的中断和崩溃。用户可以根据系统的重要性以及终端用户对服务中断的容忍程度决定是否使用双机热备。双机热备系统是承担企业关键业务应用的服务器的必要选择,...
【Linux服务器集群系统】是一种应对互联网流量爆炸式增长和服务器性能需求提升的解决方案。随着Web服务的广泛应用,如电子商务、在线银行等,网络流量急剧增加,单台服务器的处理能力和带宽成为制约服务质量的关键...
vCenter Heartbeat是用于保护VMware vCenter服务器的一种高可用性解决方案。另外,VMware P2V(物理到虚拟)和Converter是将物理服务器转换成虚拟机的工具。 Citrix XenDesktop是一个完整的桌面虚拟化解决方案,它...
在本资料中,我们将深入探讨如何使用SealOS 4.0.0来部署一个高可用性的Kubernetes(k8s)1.24.0集群。Kubernetes,也被称为K8s,是目前最流行的容器编排系统,用于自动化容器化应用的部署、扩展和管理。SealOS是一款...
**知识点十一:确定并评估高可用性解决方案** - **方法**:基于之前的风险分析和障碍识别结果,选择合适的解决方案。 #### 第3章:使Exchange 2003组织具备容错能力 **知识点十二:容错邮件基础结构概述** - **...
在本主题中,我们将深入探讨如何使用`kubeadm`工具来初始化一个高可用性的Kubernetes(k8s)1.20.4集群,其中etcd集群独立于k8s集群之外运行。这对于确保数据存储的稳定性和可扩展性至关重要。etcd是Kubernetes的...
这个资源包“k8s3主1从-1.15.1-高可用搭建-ipvs模式-kubernetes高可用安装包和详细文档笔记整理”显然是一个针对k8s 1.15.1版本的高可用性(HA)集群的搭建指南,特别强调了使用IPVS(IP虚拟服务器)作为服务负载...
高可用性(HA)集群是指即使在硬件或软件故障的情况下,系统仍能持续提供服务。在Kubernetes中,实现HA的关键组件包括etcd(分布式键值存储)、kube-apiserver、kube-controller-manager和kube-scheduler,这些都...
RoseMirrorHA 成熟的数据镜像技术,全面的高可用性支持,即保证了系统的最佳的性能,最高的可靠性,同时又通过丰富的应用支持,灵活智能的控制机制,简单易用的管理配置,是最佳性价比的纯软高可用性解决方案。...
系统还支持集群基础架构以保证高可用性和稳定性。 3. 系统应用: - 内容管理与发布:提供文档管理、流程协作,以及与业务系统的数据集成,确保信息的准确传递。 - UI&UE设计:强调用户友好性和易用性,通过微件、...
服务器集群部署,确保高可用性和负载均衡,同时考虑备份和灾难恢复策略。 2.2.4 软/硬件设备清单 配备高性能服务器、存储设备、网络设备以及终端设备,确保系统运行稳定。 2.2.5 系统功能体系 功能涵盖管网...
VMware 服务器虚拟架构解决方案是基于VMware公司的技术构建的,旨在提高服务器效率,实现资源的最大化利用,并提供高可用性和灾难恢复能力。VMware公司是全球领先的虚拟化和云计算基础设施供应商,其解决方案广泛...
总的来说,Windows Server 2003集群解决方案为企业提供了一种经济高效的方法,来提升关键服务的稳定性,同时简化管理和维护工作。然而,本文档并未涵盖非传统仲裁模型如多数节点集(MNS)或地理分布式集群的配置,...
本文深入探讨了数据中心网络的高可用性设计思路,旨在减少故障对业务的影响,并提出了一种综合性的解决方案。 首先,数据中心的故障类型包括硬件故障、软件故障、链路故障、电源/环境故障和资源利用问题等。为了...
MySQL集群是一种分布式数据库系统,旨在提供高可用性、可扩展性和数据冗余。在这个集群中,数据被分散存储在多个节点上,以实现负载均衡和故障恢复。在本篇文章中,我们将深入探讨MySQL集群的关键概念、架构以及如何...
分布式系统在现代软件架构中扮演着重要角色,它允许我们将应用程序和服务拆分为多个独立的组件,从而实现可扩展性和高可用性。然而,分布式环境带来了许多挑战,包括数据一致性、会话管理、负载均衡和故障恢复等问题...
EMC的存储虚拟化VPlex解决方案是针对金融行业的一个创新技术,旨在解决多数据中心环境下的存储管理和数据共享问题...对于需要处理大量关键数据并确保高可用性的金融机构而言,VPlex是实现存储现代化和优化的重要选择。