分享
 
 
 

JGroups ARM(一)

王朝java/jsp·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

JGroups/ARM(一)

根据Hein Meling和Alberto Montresor的ppt编写

前言

进入了分布式的时代,我们通常将1)可靠的高可用性2)容错 3)负载均衡

定义为分布式系统满足的三个基本条件。分布式系统并不是指操作系统,它扮演一种中间件的角色,在各种操作系统和应用之间构架起一套桥梁,它能够做到 i)不依赖于特定的硬件,软件及操作系统,不受限于系统架构和软件体系 ii) 在充分利用便宜的硬件和软件的基础上,实现最大的性价比。

进一步讨论分布式系统的时候,让我们了解一下我们传统的集中式系统面对的挑战:

1,

服务器硬件故障(硬盘损坏)

2,

网络故障(交换机,路由器崩溃)

3,

操作系统故障(Windows死机)

4,

软件故障(内存泄露)

分布式系统需要解决集中式系统所带来的问题,需要从以下两个方面着手

1)

提供一套系统框架,该框架实现了服务器之间的多路数据复制且在出现故障的时候,不需要管理员的干预便能自动恢复。

2)

提供一套接口,让用户能够在此基础上开发可靠的,高可用性的分布式应用。

让我看看过去的分布式系统框架把

l

Corba

l

DCOM/.Net

l

Java RMI/Jini/EJB

这三种系统框架都具有以下的特性

1,

面向对象

2,

基于Client/Server远程方法调用的思想

3,

模块化

4,

高度重用性

5,

互操作性

6,

可移植性(DCOM限于Windows平台上)

下面,以Java RMI 远程方法调用为例,描述一下传统的分布式框架存在的问题。

Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1以后的版本实现的,它大大增强了Java开发分布式应用的能力。RMI是在一种百分之百纯Java的网络分布式应用系统的核心解决方案之一,其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。JRMP是专为Java的远程对象制定的协议。用Java RMI开发的应用系统可以部署在任何支持JRE(Java Run Environment Java,运行环境)的平台上。但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。

RMI让JVM1与JVM2互相调用的时候,很好屏蔽了底层操作系统的细节,但是,如果将上面的架构改成一对多模式(一个客户端对多个服务器),Client仍然避免不了需要知道系统各个服务器的网络细节(即客户端对服务器的调用并不是透明的),而且,服务器之间还存在一个如何维持调用一致性的问题。

总之,RMI和DCOM等分布式框架都没有很好的地考虑可靠性和高可用性的需求。于是,一个新的概念从这里提出了——组件群(Object Group)。

组件群可以这样理解:它是一个基于服务器对象和组件的动态集合,集合中的所有组件对象互相协作和维持各个组件一致性,他们为客户端外提供一致、可靠和高可用性服务。

?SHAPE?

\* MERGEFORMAT

Client

Server

Server

Server

Server

?SHAPE

?\* MERGEFORMAT

Client

Server

Server

Server

Server

组件群依赖于三种服务来构架起分布式体系框架,在描述这套框架之前,先约定,群组(Group)是一个组件的组合,组件可抽象为组员,群组发生的事件通常有:

a)

Join

b)

Leave

c)

Merge

d)

Partition

e)

Crash

1,

群组管理服务(Group Membership Service)

因为群组是动态的,有些组员会加入(join)到群,有些组员会脱离(leave),有些组员会因为故障而偶然脱离(crash),有时候还存在2个群之间的合并(merge)、分离(Partition)等事件,因此,群必须具有处理这些事件的能力。

2,

可靠多播服务(Reliable Multicast Service)

在分布式群组环境下,我们通过一对多的方式来实现高可用性(跟HA其实同一个概念),现在的关键是,我们的群如何进行可靠的通讯。

答案很简单——多播。关于群组多播的概念可参考:

http://blog.csdn.net/huangzhq/archive/2005/02/18/291761.aspx

3,

状态传输服务(State Transfer Service)

状态传输的目的就在于群组组员的信息同步,也就是,组员A跟组员B所看到的群的结构是一致的。也就是,群组成员是通过此服务来维持该群的一个统一的视图(View)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有