因胸联盟 发表于 2015-1-18 11:50:02

JAVA网页设计JGroups ARM(一)

专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。JGroups/ARM(一)
依据HeinMeling和AlbertoMontresor的ppt编写



媒介



进进了散布式的时期,我们一般将1)牢靠的高可用性2)容错3)负载平衡界说为散布式体系满意的三个基础前提。散布式体系并非指操纵体系,它饰演一种两头件的脚色,在各类操纵体系和使用之间构架起一套桥梁,它可以做到i)不依附于特定的硬件,软件及操纵体系,不受限于体系架构和软件系统ii)在充实使用廉价的硬件和软件的基本上,完成最年夜的性价比。

进一步会商散布式体系的时分,让我们懂得一下我们传统的会合式体系面临的应战:

1,服务器硬件妨碍(硬盘破坏)

2,收集妨碍(互换机,路由器溃散)

3,操纵体系妨碍(Windows逝世机)

4,软件妨碍(内存保守)

散布式体系必要办理会合式体系所带来的成绩,必要从以下两个方面动手

1)供应一套体系框架,该框架完成了服务器之间的多路数据复制且在呈现妨碍的时分,不必要办理员的干涉便能主动恢复。

2)供应一套接口,让用户可以在此基本上开辟牢靠的,高可用性的散布式使用。



让我看看已往的散布式体系框架把

lCorba

lDCOM/.Net

lJavaRMI/Jini/EJB

这三种体系框架都具有以下的特征

1,面向对象

2,基于Client/Server远程办法挪用的头脑

3,模块化

4,高度重用性

5,互操纵性

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



上面,以JavaRMI远程办法挪用为例,形貌一下传统的散布式框架存在的成绩。



JavaRMI(RemoteMethodInvocation远程办法挪用)是用Java在JDK1.1今后的版本完成的,它年夜年夜加强了Java开辟散布式使用的才能。RMI是在一种百分之百纯Java的收集散布式使用体系的中心办理计划之一,实在它能够被看做是RPC的Java版本。可是传统RPC其实不能很好地使用于散布式对象体系。而JavaRMI则撑持存储于分歧地点空间的程序级对象之间相互举行通讯,完成远程对象之间的无缝远程挪用。RMI今朝利用Java远程动静互换协定JRMP(JavaRemoteMessagingProtocol)举行通讯。JRMP是专为Java的远程对象制订的协定。用JavaRMI开辟的使用体系能够部署在任何撑持JRE(JavaRunEnvironmentJava,运转情况)的平台上。但因为JRMP是专为Java对象制订的,因而,RMI关于用非Java言语开辟的使用体系的撑持不敷。不克不及与用非Java言语誊写的对象举行通讯。



RMI让JVM1与JVM2相互挪用的时分,很好屏障了底层操纵体系的细节,可是,假如将下面的架构改成一对多形式(一个客户端对多个服务器),Client仍旧制止不了必要晓得体系各个服务器的收集细节(即客户端对服务器的挪用并非通明的),并且,服务器之间还存在一个怎样保持挪用分歧性的成绩。

总之,RMI和DCOM平分布式框架都没有很好的地思索牢靠性和高可用性的需求。因而,一个新的观点从这里提出了——组件群(ObjectGroup)。

组件群能够如许了解:它是一个基于服务器对象和组件的静态汇合,汇合中的一切组件对象相互合作和保持各个组件分歧性,他们为客户端外供应分歧、牢靠和高可用性服务。

?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,群组办理服务(GroupMembershipService)

由于群组是静态的,有些组员会到场(join)到群,有些组员会离开(leave),有些组员会由于妨碍而偶尔离开(crash),偶然候还存在2个群之间的兼并(merge)、分别(Partition)等事务,因而,群必需具有处置这些事务的才能。

2,牢靠多播服务(ReliableMulticastService)

在散布式群组情况下,我们经由过程一对多的体例来完成高可用性(跟HA实在统一个观点),如今的关头是,我们的群怎样举行牢靠的通信。

谜底很复杂——多播。关于群组多播的观点可参考:

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

3,形态传输服务(StateTransferService)

形态传输的目标就在于群组组员的信息同步,也就是,组员A跟组员B所看到的群的布局是分歧的。也就是,群构成员是经由过程此服务来保持该群的一个一致的视图(View)。



因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。

admin 发表于 2015-1-21 16:00:24

是一种为 Internet发展的计算机语言

深爱那片海 发表于 2015-1-29 09:46:17

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

冷月葬花魂 发表于 2015-2-6 00:18:53

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

兰色精灵 发表于 2015-2-10 07:45:17

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

再现理想 发表于 2015-2-16 10:08:45

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

金色的骷髅 发表于 2015-3-5 03:41:21

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

活着的死人 发表于 2015-3-6 17:59:19

是一种为 Internet发展的计算机语言

乐观 发表于 2015-3-7 08:15:34

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

不帅 发表于 2015-3-11 08:20:49

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

谁可相欹 发表于 2015-3-20 07:11:54

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

飘飘悠悠 发表于 2015-3-22 21:40:20

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

愤怒的大鸟 发表于 2015-4-4 23:36:11

是一种将安全性(Security)列为第一优先考虑的语言

小妖女 发表于 2015-4-15 05:15:02

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

精灵巫婆 发表于 2015-4-22 06:00:41

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

小魔女 发表于 2015-5-2 15:54:24

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

分手快乐 发表于 2015-5-6 19:10:49

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

柔情似水 发表于 2015-5-9 12:03:07

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

蒙在股里 发表于 2015-6-3 23:44:38

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

只想知道 发表于 2015-6-4 05:37:22

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
页: [1]
查看完整版本: JAVA网页设计JGroups ARM(一)