首页 > 编程知识 正文

分布式服务器集群,高可用分布式架构

时间:2023-05-04 20:15:36 阅读:159460 作者:4829

大部分开发人员都专注于单机的开发,随着大数据时代的到来,分布式计算、分布式服务器集群、分布式存储等都已经成为高级开发人员必须掌握的技术。

由于可以自己构建高可用性的Web服务器集群系统,所以可以很容易地接受分布式技术。

1.分布式集群

1.1 .分布式系统体系结构

下图中的分布式系统体系结构有两个好处。 一是系统可以应用于各种规模的企业。 (图中的每个节点都表示一台APP应用程序服务器,而不一定是物理计算机。)。 第二,管理员可以登录到任何远程客户端并基于Web浏览器进行服务器管理,服务器管理非常简单。

1.2 .增强的安全和事务能力

完全符合标准的事务处理,可提供增值服务,包括身份验证、授权机制、加密机制和安全数据存储,以确保为用户提供安全可靠的分布式企业APP应用的APP应用数据和业务逻辑的完整性

1.3 .服务器群集可扩展性和高可用性

多个APP应用服务器组成一个服务器集群,其优点是通过负载均衡和故障恢复机制解决网络拥塞问题,服务就近提供,不依赖地理位置。 能够向用户提供更好访问质量; 可以提高服务器响应速度,提高服务器和其他资源的利用效率,避免了网络关键部分的单点故障问题,提高了服务器的可扩展性。

集群系统是一组松散耦合的服务组,形成虚拟服务,为客户端用户提供统一的服务。 当访问群集系统时,此客户端通常无法识别服务由特定的哪些服务提供。 集群系统通常需要具有高可用性、可扩展性、负载均衡、故障恢复和可维护性等特殊性能。

高可用性是集群系统最基本的要求,是对整个系统运行稳定性的评估。 可扩展性是指当客户端用户数量增加时,整个系统保持有效响应时间的能力。 在可伸缩系统中,随着用户数量的增加,有效响应时间会变长,呈线性变化关系。 这显示了系统的峰值负载处理能力,但由于互联网上的系统越来越多,无法有效预测用户访问峰值负载。 用户访问量的激增使系统的有效响应时间呈非线性变化,响应时间急剧增长,我们知道系统已经不堪重负而停止了。 常见的解决方法是提高系统硬件系统或添加服务。 但是,勉强增加服务器只会使整个集群系统越来越庞大,这样的系统复杂化意味着系统的故障率变高,随之系统整体的可靠性、可维护性降低。

因此,一个系统的可用性和可伸缩性是矛盾的关系,与整个集群系统的实现方法有很大的关系。

1.4.EJB技术

EJB是J2EE APP应用平台的核心。 Sun在EJB2.0规范中将EJB定义如下: EJB是用于开发和部署具有多层结构的分布式面向对象的Java APP应用系统平台的组件体系结构。 EJB组件有三种类型:会话bean、实体bean和消息驱动bean。 会话bean有两种类型:有状态和无状态。

EJB服务器的核心是提供一个或多个供EJB使用的EJB容器(容器)。 EJB容器管理它包含的EJB,为EJB组件的生存和执行提供运行时环境,并负责EJB的事务管理、安全管理、资源访问控制和一些异常处理。 EJB容器不允许J2EE的客户端程序直接访问容器中的EJB对象。 当一个客户端用户尝试访问EJB时,EJB规范要求使用javanaminganddirectoryinterface (JNDI ) API查找Bean的home接口。

1.5.EJB服务器群集

EJB服务器集群是基于组件的集群方式,与普通的web服务器集群技术有很大的不同。 实现的方法也不同。 另外,由于EJB的规格中没有提供任何支持集群的标准,所以即使部分制造商在EJB服务器上提供集群的特性,如何具体实现集群也由制造商自己决定。 实现方法也各不相同。 目前,大多数J2EE APP应用服务器都提供群集功能。 例如,bea WebLogic APP应用服务器、开源JBoss APP应用服务器和Sybase提供的J2EE APP应用服务器都提供了群集功能。 在EJB服务器集群设计中,负载平衡、EJB集群和HttpSession集群技术是设计中涉及的主要技术。 其中EJB集群的实现是整个系统实现的核心。

2 .负载平衡(LoadBalance )。

LoadBalance的主要目的是将系统访问负载分布在不同的计算机上,从而提高整个系统的吞吐量和并发性。 这样,多台服务器就可以协同处理繁重的计算和IO任务,消除网络瓶颈,提高网络灵活性和可靠性。 一般方法如下

循环DNSDNS负载平衡是一种简单高效的方法,通过使用简单的域名查询IP地址来实现简单的负载平衡。 如果指定任何地址,则IP地址池将对应于DNS服务器。 每次请求将域名转换为IP地址时,循环都会返回到IP地址池中的下一个地址。 被称为DNSround-robin。 当客户端进行访问时,DNS名称将作为名称服务器的URL传递给请求JNDI的InitialContext客户端,并将每个DNS名称转换为不同的地址。 使用此技术时,将直接发送每个客户端的InitailContext请求

不同的服务器上。负载均衡的一大缺点是:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(因为DNS需要一定的刷新时间)才能发挥作用,在此期间,有些客户端用户访问仍旧将发送故障服务器上。

软件Proxy

软件Proxy维护连接到一系列服务器上的打开连接。当一个Client访问服务器时,先要经过这个软件代理,这个代理能通过一些负载均衡的算法(如采用类似DNSRound-robin、随机方法、访问权衡算法)把一个用户的访问重新定向到一个服务器。这个软件代理方法能够及时发现服务器死机或没有响应,有效地避免了DNSround-robin方法中出现地故障访问。

硬件均衡器

这种硬件均衡器一般采用地址转换技术,将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。一般可采用第四层(或4层以上)的交换机来实现,这种交换机是按照IP地址和TCP端口进行虚拟连接的交换,直接将数据包发送到目的计算机的相应端口。通过交换机就能将来自外部的初始连接请求,分别与内部的多个地址相联系,从而建立虚拟连接实现负载均衡。这种第四层交换基于硬件芯片,因此网络传输速度和交换速度远远超过普通软件代理方式。如采用CiscoCSS11150(一种L4Switch)可以实现硬件均衡。

转载:点击打开链接

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。