文档章节

分布式集群技术_已迁移

辣条拌鱼翅
 辣条拌鱼翅
发布于 2015/08/24 22:24
字数 2029
阅读 334
收藏 20
点赞 0
评论 0

1.分布式集群

1.1.分布式系统架构

下图分布式系统架构好处有两点:一是系统可以适用于各种规模的企业,(图中每个节点代表一台应用服务器,并不见得是一台物理意义上的计算机);二是可以方便地进行服务器管理,管理员可以在任何一个远程客户端上登录,基于Web浏览器进行服务器管理。


1.2.增强的安全特性和事务处理功能

提供身份验证、授权机制、加密机制和安全数据存储等增值服务,为用户提供安全、可靠的分布式企业级应用;为保证应用数据和业务逻辑的的完整性,除了提供完全符合规范的事务管理之外,还支持死锁检测、并发控制、JMS全局事务等特性。

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

多个应用服务器组成一个服务器集群,其优点在于:通过负载均衡和失效恢复机制可以解决网络拥塞问题,服务就近提供,实现地理位置无关性;可以为用户提供更好的访问质量;可以提高服务器响应速度,提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效问题;增强了服务器的可扩展性。

一个集群系统是一群松散结合的服务器组,形成一个虚拟的服务器,为客户端用户提供统一的服务。对于这个客户端来说,通常在访问集群系统时不会意识到它的服务是由具体的哪一台服务器提供。集群系统一般应具高可用性、可伸缩性、负载均衡、故障恢复和可维护性等特殊性能。

高可用性是集群系统最基本的要求,它是对整个系统运行稳定性的一个评价。可伸缩性是指整个系统在随着客户端用户数量的增加而继续保持有效响应时间的能力。在一个可伸缩性系统中,随着用户数量的增加,有效响应时间变长,成线性变化关系,这也体现一个系统的峰值负载处理能力,但随着越来越多的系统处于Internet上,用户访问的峰值负载有效预测已变的不可能。用户访问量的猛增,使系统的有效响应时间成非线性变化,响应时间急剧变长,知道系统不堪重负而停机。一般的解决方法就是通过提升系统硬件系统,或通过增加服务器。但是不合理的增加服务器只能使整个集群系统变的越来越庞大,系统的这种复杂化就意味系统故障率变高,随之整个系统可靠性、可维护性都会降低。

所以,一个系统的可用性和可伸缩性是一对矛盾的关系,而且和整个集群系统的实现方法有很大的关系。

1.4.EJB技术

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

EJB服务器的核心是提供EJB使用的一个或者多个EJB容器(Container)。EJB容器管理它所包含的EJB,为EJB组件的生存和执行提供了运行环境,同时也负责EJB的事务管理,安全管理,资源访问控制和一些异常处理。EJB容器不允许J2EE的客户端程序直接访问容器中EJB对象,当一个客户端用户想访问一个EJB,EJB规范中要求客户使用Java名字和目录接口JNDI(JavaNamingandDirectoryInterface)API来定位Bean的home接口。

1.5.EJB服务器集群

EJB服务器的集群是基于组件的一种集群方式,和普通WebServer集群技术有很大的不同。实现的方法也不相同。又由于EJB规范中没有提供任何有关支持集群的标准,即使有的厂商在EJB服务器中提供了集群特性,但如何具体实现集群也是由厂商自己确定。实现的方法也各不相同。目前,大多数J2EE应用服务器都提供了集群功能,如BeaWebLogic应用服务器,开放源码的JBoss应用服务器,Sybase公司提供的J2EE应用服务器等都提供了集群功能。在EJB服务器集群设计中,负载均衡(LoadBalance),EJB集群和HttpSession集群技术是设计中涉及到的主要技术。其中EJB集群的实现是整个系统实现的核心。

2.负载均衡(LoadBalance)

LoadBalance主要的目的在于将访问系统的负荷分散在不同的机器上,使整个系统吞吐量和并发性得到提高,它能让多台服务器共同承担一些繁重的计算或IO任务,从而消除网络瓶颈,提高网络的灵活性和可靠性。常见的方法如下:

  • 循环DNS

DNS负载均衡是一种简单而有效的方法,该方法使用简单的域名查询IP地址来实现一种简单的负载均衡。任意给出一个地址,DNS服务器都有一个IP地址池与之对应。每次请求将域名转换成IP地址时,循环返回IP地址池中的下一个地址。故被称作DNSround-robin。当一个Client访问时,给请求JNDI的InitialContext客户端传递一个DNS名,作为命名服务器的URL,每个DNS名字被转换成一个不同的地址,使用这个技术,每个客户端InitailContext请求就被直接发送到不同的服务器上。负载均衡的一大缺点是:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(因为DNS需要一定的刷新时间)才能发挥作用,在此期间,有些客户端用户访问仍旧将发送故障服务器上。

  • 软件Proxy

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

  • 硬件均衡器

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



本文转载自:http://blog.csdn.net/suxinpingtao51/article/details/37922627

共有 人打赏支持
辣条拌鱼翅
粉丝 25
博文 238
码字总数 73301
作品 0
朝阳
程序员
浅谈Kubernetes和Docker

近年来,Docker像一股旋风席卷IT界,Docker指的是容器技术,其字面意思是集装箱。Docker容器技术得以快速发展,核心技术是镜像打包,使得上下游能友好地进行协助和标准化交付。“build once ...

aliceliu80 ⋅ 2017/11/07 ⋅ 0

说说大型网站可伸缩性架构的设计原理

可伸缩性架构指的是:不改变网站的软硬件设计,只通过改变部署的服务器数量就可以扩大或缩小网站的服务处理能力。 大型网站中的 “大型”,可以表现在以下几个方面: 用户方面 - 大量的用户与...

deniro ⋅ 2017/11/01 ⋅ 0

>读后笔记

此书是2013年出版,如果当时自己就读到这本书就好了,虽然距离此书出版已5年时间,但是书中多数主题仍不过时。 下面总结一下自己从书中体会比较多的几个地方: 1. 为何需要架构 技术是为业务...

ShutLove ⋅ 05/05 ⋅ 0

阿里自研大规模分布式缓存服务 Tair 模块详解

Tair 是阿里巴巴自主研发的高性能、分布式、可扩展、高可靠的 key/value 存储系统,在淘宝网、天猫、聚划算等有着大规模的应用。Tair 的使用场景非常广泛,最简单的场景发生在用户登录淘宝并...

大大大大风车 ⋅ 2017/09/26 ⋅ 9

张升:农业银行的分布式架构应用实践与展望

近年来,以阿里为代表的互联网企业提出的“去IOE”,在业界引起了广泛的讨论。“去IOE”直接含义是不使用传统IT巨头的产品,这些厂商产品虽然好,但基本处于市场垄断地位,用户议价能力较弱,...

天天顺利 ⋅ 2015/07/16 ⋅ 0

打不死的redis集群

最近遇到部分系统因为redis服务挂掉,导致部分服务不可用。所以希望搭建一个redis集群镜像,把原先散落各处的redis服务器统一管理起来,并且保障高可用和故障自动迁移。 一 redis集群分类 大...

linuxprobe ⋅ 2016/10/11 ⋅ 0

一种全新的VDI桌面虚拟化方案(X9BYOD)

一种全新的VDI桌面虚拟化方案(X9BYOD) 1. 灵巧、易扩展的轻量级架构 传统的桌面虚拟化解决方案,一个集群需要管理服务器、计算服务器和一个共享存储(或存储网络)。管理服务器和计算服务器...

yuiluv ⋅ 2013/08/23 ⋅ 0

Redis分布式集群几点说道

Redis数据量日益增大,使用的公司越来越多,不仅用于做缓存,同时趋向于存储这一块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架构,...

涩女郎 ⋅ 2016/09/23 ⋅ 0

JBoss EAP 7.0 Alpha 发布,支持 Java EE 7

Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP 7) 是个中间件平台,基于开放标准构建,和 Java EE 7 规范编译。JBoss EAP 集成了 WildFly ApplicationServer 10,包含其高可用...

oschina ⋅ 2015/11/16 ⋅ 5

linux+Oracle集群课程全面升级

作为国内最早从事开源架构师级课程研发的公司,从2006年10月开始,荣新稳步提升,将互联网运维作为主导就业方向,并将Linux集群架构课程发展成为国内最顶级、覆盖技术最全面的Linux课程,作为...

张琦 ⋅ 2010/11/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 26分钟前 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

前言 我是上学期学的汇编,因为有vs又不想用课上教的麻烦的dosbox以及masm32,但是一直没找到高亮插件和能调试的(难在运行不了而找不到答案上,出现的错误在最后放出,还请先达们不吝指点)...

simpower ⋅ 36分钟前 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 39分钟前 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 46分钟前 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 47分钟前 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 55分钟前 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 58分钟前 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 今天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 今天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部