JGroups在集群环境下还是有一定的用处的,比如基于JGroups & memcached开发分布式cache层,集群任务的切分和计算结果的合并,JBossCache组件...XML-协议栈 - 以一个JGroups标配的tcp.xml为例子
1.读取XML文件<config>下<ELEMENT>集合,每一个<ELEMENT>初始化成一个ProtocolConfiguration
- ProtocolConfiguration -> protocol_name | MAP<key, value>
这样组成一个LIST<ProtocolConfiguration>
------
2. ProtocolConfiguration参数处理
a. 迭代MAP每一个key-value处理value,如果value中能找到正则式${([^}]+)}中的group(1)则抽取出来处理b. 抽取出所有的group(1),如果满足正则([^:]+):([^:]+)则将其group(1)和group(2)分别抽取出来,否则整个
当成一个group(1)c. 如果group(1)满足[([^,]+),]*([^,]+)则抽取所有的组迭代这些值调用System.getProperty(value)如果不为空
退出迭代,如果在这个过程中根据group(1)得到的值为空则使用group(2)来代替,这层取得的值如果不为
空则其上一层的group(1)使用这个值代替,否则将此key-value从ProtocolConfiguration属性中删除
------
3.构建协议栈ProtocolStack
a. LIST<ProtocolConfiguration>到LIST<Protocol>的处理
迭代ProtocolConfiguration根据ProtocolConfiguration.protocol_name初始化对应的Protocol类,再根据
ProtocolConfiguration.properties对Protocol的属性进行设置,其具体步骤是首先获取此Protocol过时的
属性从properties里面移除,再获取此Protocol里面可以设置的属性如果properties里面有则进行设置,
最后如果properties还有多余的映射则会抛异常。初始化一个LIST<Protocol>生成的Protocol加到此LIST中b. LIST<Protocol>验证
第一步验证LIST<Protocol>是否有重复,再就是根据每层协议需要上层和下层提供的服务到其上面的协议
和其下面的协议去找是否提供了它需要的服务迭代LIST<Protocol>进行将Protocol链表连接起来
-----------
- Protocol protocol : LIST<Protocol>
- protocol.upProtocol=nextProtocol
- nextProtocol.downProtocol=protocol
-----------
c. 协议栈ProtocolStack本身也是一个Protocol,其维护了两个引用top_prot和bottom_prot,其中top_prot为
STREAMING_STATE_TRANSFER,bottom_prot为TCP,并且top_prot的upProtocol设置为ProtocolStack。
再将ProtocolStack倒序过来依次调用Protocol.init来初始化协议。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-10/91114p2.htm
JGroups 的详细介绍:请点这里
JGroups 的下载地址:请点这里
相关阅读:JGroups入门教程 http://www.linuxidc.com/Linux/2013-10/91114.htm
| 【内容导航】 |
| 第1页:XML协议配置文件 | 第2页:TP层 |
| 第3页:TCP层 | 第4页:TCPPING层 |
| 第5页:BARRIER层 | 第6页:MERGE2层 |
Ubuntu 12.04 LTS 64位下编译安装Erlang R16B02rtorrent - 强大的命令行BT客户端相关资讯 JGroups
- JGroups 3.6.8 发布下载,Java 组 (02月25日)
- JGroups 3.6.4.Final 发布,Java (06/30/2015 09:22:06)
- JGroups 3.6.2.Final 发布下载, (02/18/2015 08:38:16)
| - JGroups 3.6.7 发布下载,Java 组 (01月13日)
- JGroups 3.4.8.Final 发布下载, (02/24/2015 09:29:59)
- JGroups 3.6.1.Final 发布下载, (12/03/2014 09:41:38)
|
本文评论 查看全部评论 (0)