- 浏览: 211897 次
- 性别:
- 来自: 杭州
最新评论
-
李嘉图0624:
第一段代码就出错了,少了g.close();不关闭的话,也没有 ...
Jackson 入门 -
daichangfu:
不光是生僻字需要,正常的也需要啊。
解决Java应用在Linux下无法正常水印生僻字 -
yaoweinan:
不错
JGroup配置笔记 -
learnworld:
grandboy 写道我想json的数据多一些对于数据绑定回j ...
Jackson 入门 -
grandboy:
我想json的数据多一些对于数据绑定回javabean时不会出 ...
Jackson 入门
JGroup TCP比较关键的配置参数
TCP
TCP(bind_addr=192.168.30.66;start_port=7800;end_port=7081)
start_port="7800"
本节点监听的端口,默认为7800,如设置为0,将会随机选定一个端口绑定
end_port
尝试监听的最大端口,如果在start_port和end_port指定的范围内都找不到一个可用端口,则抛出一个BindException。如果不指定end_port,或者end_port<start_port,end_port将没有上限,如果start_port=end_port,JGroup将会只用该端口来绑定。
bind_addr="192.168.1.3"
JGroup监听的物理IP,如不指定,JGroup将会绑定到所有可用网络接口。当有多个网络接口时应该指定一个
TCPPING
TCPPING(initial_hosts=hosta[2300],hostb[3400],hostc[4500]; port_range=3;num_initial_members=2;timeout=3000)
initial_hosts="hosta[2300],hostb[3400],hostc[4500]"
初始成员列表,所有成员都应该列出来,否则在特定条件下会形成封闭节点。
port_range="3"
查找初始成员的端口范围,结合上述的initial_hosts配置,当前节点将查找的成员有hosta:2300, hosta:2301, hosta:2302, hostb:3400, hostb:3401, hostb:3402, hostc:4500, hostc:4501, hostc:4502.
num_initial_members="2"
等待最多初始成员回应的数量,但是不得超过timeout定义的毫秒时间。默认值为2
配置例子:
1) 假设有两个JGroup应用都在 192.168.30.66 上
TCP(bind_addr=192.168.30.66;start_port=7800;end_port=7081;loopback=true;recv_buf_size=20000000;send_buf_size=640000;discard_incompatible_packets=true;max_bundle_size=64000;max_bundle_timeout=30;use_incoming_packet_handler=true;enable_bundling=true;use_send_queues=false;sock_conn_timeout=300;skip_suspected_members=true;use_concurrent_stack=true;thread_pool.enabled=true;thread_pool.min_threads=1;thread_pool.max_threads=25;thread_pool.keep_alive_time=5000;thread_pool.queue_enabled=false;thread_pool.queue_max_size=100;thread_pool.rejection_policy=run;oob_thread_pool.enabled=true;oob_thread_pool.min_threads=1;oob_thread_pool.max_threads=8;oob_thread_pool.keep_alive_time=5000;oob_thread_pool.queue_enabled=false;oob_thread_pool.queue_max_size=100;oob_thread_pool.rejection_policy=run):TCPPING(timeout=3000;initial_hosts=192.168.30.66[7800];port_range=2;num_initial_members=2):MERGE2(max_interval=100000;min_interval=20000):FD_SOCK:FD(timeout=10000;max_tries=5;shun=true):VERIFY_SUSPECT(timeout=1500):BARRIER:pbcast.NAKACK(use_mcast_xmit=false;gc_lag=0;retransmit_timeout=300,600,1200,2400,4800;discard_delivered_msgs=true):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=400000):VIEW_SYNC(avg_send_interval=60000):pbcast.GMS(print_local_addr=true;join_timeout=3000;shun=true;view_bundling=true):FC(max_credits=2000000;min_threshold=0.10):FRAG2(frag_size=60000):pbcast.STREAMING_STATE_TRANSFER
2) 假设有后台应用和前端应用各两个, 后台应用在192.168.30.66和192.168.30.76上; 前端应用在on 192.168.30.69和192.168.30.79上
后台应用和前端应用都可以使用同一配置
TCP(start_port=7800;end_port=7800;loopback=true;recv_buf_size=20000000;send_buf_size=640000;discard_incompatible_packets=true;max_bundle_size=64000;max_bundle_timeout=30;use_incoming_packet_handler=true;enable_bundling=true;use_send_queues=false;sock_conn_timeout=300;skip_suspected_members=true;use_concurrent_stack=true;thread_pool.enabled=true;thread_pool.min_threads=1;thread_pool.max_threads=25;thread_pool.keep_alive_time=5000;thread_pool.queue_enabled=false;thread_pool.queue_max_size=100;thread_pool.rejection_policy=run;oob_thread_pool.enabled=true;oob_thread_pool.min_threads=1;oob_thread_pool.max_threads=8;oob_thread_pool.keep_alive_time=5000;oob_thread_pool.queue_enabled=false;oob_thread_pool.queue_max_size=100;oob_thread_pool.rejection_policy=run):TCPPING(timeout=3000;initial_hosts=192.168.30.66[7800],192.168.30.76[7800],192.168.30.69[7800],192.168.30.79[7800];port_range=1;num_initial_members=4):MERGE2(max_interval=100000;min_interval=20000):FD_SOCK:FD(timeout=10000;max_tries=5;shun=true):VERIFY_SUSPECT(timeout=1500):BARRIER:pbcast.NAKACK(use_mcast_xmit=false;gc_lag=0;retransmit_timeout=300,600,1200,2400,4800;discard_delivered_msgs=true):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=400000):VIEW_SYNC(avg_send_interval=60000):pbcast.GMS(print_local_addr=true;join_timeout=3000;shun=true;view_bundling=true):FC(max_credits=2000000;min_threshold=0.10):FRAG2(frag_size=60000):pbcast.STREAMING_STATE_TRANSFER
JGroup UDP比较关键的配置参数
主要配置参数
参数 |
描述 |
mcast_addr |
多播地址 |
mcast_port |
多播端口 |
配置例子:
对于TCP的两个例子都可以用以下配置
UDP(mcast_addr=224.0.0.161;mcast_port=45566;ip_ttl=32;mcast_send_buf_size=150000;mcast_recv_buf_size=80000):PING(timeout=2000;num_initial_members=3):MERGE2(min_interval=5000;max_interval=10000):FD_SOCK:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800):UNICAST(timeout=5000):pbcast.STABLE(desired_avg_gossip=20000):FRAG(frag_size=8096;down_thread=false;up_thread=false):pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=true;print_local_addr=true;reject_join_from_existing_member=false):FD(timeout=2000;max_tries=5;shun=true)
注意事项
l LAN或者多个子网内建议使用TCP方式,因为不同子网中,UDP多播消息可能会给路由器丢弃
l FD和FD_SOCK同时有时会出现SocketCloesedException,这时要注意重启时间不宜过短
l 出现GMS Join Retry循环时也要注意重启时间不宜过短
官方文档
http://www.jboss.org/community/docs/DOC-10878
发表评论
-
开发新手通用代码问题
2011-06-04 06:32 14132最近辅导黄埔的同学进行开发,发现了一些问题,隐约看到当年自己写 ... -
jmockit 的使用系列
2010-12-13 21:30 94731. 入门 2. 完整的Mock步骤 ... -
jmockit 的使用示例-02完整的Mock步骤
2010-12-13 21:11 4923package jmockit.sample; impo ... -
jmockit 的使用示例-03全部mock的?
2010-12-13 21:11 3683package jmockit.sample; impo ... -
jmockit 的使用示例-04静态部分mock示例
2010-12-13 21:10 3903package jmockit.sample; impo ... -
jmockit 的使用示例-06私有成员的Mock
2010-12-13 21:10 7746目标测试代码 package jm ... -
jmockit 的使用示例-07私有静态成员Mock
2010-12-13 21:09 4766目标测试代码 package jmockit.target ... -
jmockit 的使用示例-09构造方法也可以Mock?基于状态的Mock?
2010-12-13 21:07 10455目标测试代码 package jmockit.target ... -
jmockit 的使用示例-10另一种基于状态的Mock,随穿随脱?
2010-12-13 21:07 2735目标测试代码 package jm ... -
jmockit 的使用示例-11不是吧,还能访问实际被Mock的对象?
2010-12-13 21:07 3278目标测试代码 package jmockit.target ... -
jmockit 的使用示例-07私有静态成员Mock
2010-12-13 20:40 5941目标测试代码 package jmockit.target ... -
jmockit 的使用示例-02完整的Mock步骤
2010-12-13 20:31 1489package jmockit.sample; impo ... -
开放的心态
2010-10-02 13:56 1018今天看李笑来的《把时间当作朋友》,看到一句话,“我们的大脑 ... -
Jackson 入门
2010-09-15 07:17 6536同事的一些测试结果看来,Jackson在处理Json方面性能相 ... -
解决Java应用在Linux下无法正常水印生僻字
2010-04-10 13:46 5714昨天接到一个投诉,说是他的水印是一个方框。刚开始还以为是程序出 ... -
同学们,秒投简历啦!
2010-03-12 23:51 221公司业务急速扩张,急需有才能的同学加入到我们的行列中, ... -
反编译工具
2009-12-31 20:54 1188追查JVM崩溃过程中使用到的反编译工具,其中beanutils ... -
追查JVM崩溃
2009-12-31 20:25 2279JDK升级到1.6后,服务器集群经常崩溃,后来把VM的参 ... -
普通用户下实现Apache 2.2.14与jboss-5.1.0.GA集成
2009-11-29 23:05 2802Apache与jboss集成,实际是apache与tomcat ... -
swt 笔记
2009-11-27 00:24 926http://www.ibm.com/developerwor ...
相关推荐
《JGroup配置详解》 JGroup是一个开源的Java框架,专门用于构建可靠的消息传递系统,尤其是在分布式计算环境中。本文将深入解析JGroup的协议栈配置,重点探讨传输协议和可靠消息传递机制。 **4.1 传输协议** 传输...
EHCAHCE基于JGROUP的集群配置方案,内含相关配置文件,及配置说明
JGroup 是一个强大的开源库,专门用于构建集群通信系统。它的主要目标是在集群内部实现可靠的...通过自定义协议栈和配置,开发者可以轻松地调整 JGroup 以适应特定的应用场景和安全需求,实现高效、可靠的分布式系统。
在软件开发领域,JGroup是一个关键的组件,用于构建可靠的消息传递和组通信系统。JGroup的核心在于其协议栈,它由一系列的协议层组成,这些协议层共同负责消息的发送、接收、可靠传输以及组成员发现。本文将详细解析...
总之,JGroup是构建分布式系统的强大工具,通过理解其核心机制和灵活配置,开发者能够创建出高可用、容错的分布式应用程序。对于想要深入研究和使用JGroup的人来说,不断探索和实践是提升技术能力的有效途径。
在使用JGroup时,你需要配置一个包含所需协议的堆栈。`jgroups-all.jar`是包含所有JGroup相关协议和实现的库文件,通过引入这个jar包,我们可以访问到JGroup的所有功能。 现在,我们来看看`Chattwo.java`这个文件,...
Reliable group communication with JGroups 3.x Preface This is the JGroups manual. It provides information about: 1. Installation and configuration 2. Using JGroups (the API) 3. Configuration of the ...
根据提供的文档内容,本文将对“jgroup代码”的安装步骤及如何编写一个简单的应用进行详细的阐述与解析。 ### 一、jgroup代码简介 JGroups是一个高性能、可扩展且易于使用的分布式通信库,用于实现集群中的节点...
- **没有网络连接时使用IP多播(Using IP Multicasting without a network connection)**:即使在没有实际网络的情况下,也可以通过配置来模拟多播通信。 - **遇到问题(Itdoesn't work!)**:如果遇到问题,首先检查...
根据提供的信息,《jgroup in action》是一本关于JGroups工具包的书籍,它详细介绍了如何使用JGroups进行可靠的多播通信。JGroups是强大的UUP(User-level UDP)开源组件,已被JBoss采用,用于底层通信。下面我们将...
### Java SWT 编写 JGroup 局域网聊天程序知识点详解 #### 一、概述 在本篇文章中,我们将深入探讨如何使用Java Swing Toolkits (SWT) 和 JGroups 库来开发一个局域网内的聊天应用程序。文章的标题提到了“Java ...
3. **新特性支持**:引入了新的特性,如更灵活的配置选项和更丰富的API,使得开发者可以根据实际需求定制自己的集群解决方案。 总结来说,JGroup-3.0.1是构建分布式系统,尤其是与Hibernate集成实现二级缓存的重要...
在IT行业中,JBoss、JDBC、JSON和JGroup是四个关键的概念,它们在不同的领域发挥着重要作用。这里,我们将深入探讨这些技术及其在实际应用中的相关知识点。 首先,JBoss是一个开源的应用服务器,它是Java EE(企业...
JGroup最大的特点就是支持协议栈的可配置性,它本是实现了基本的Java的协议栈实现,也就是最基本的消息广播的基础,同时支持附加协议栈的配置,消息的传递就是在这些协议栈之间相互传递,封装,检查,丢弃,重发。...
使用JGroup实现分布式数据结构(堆栈和集合) 介绍 [什么是JGroups?]( ) [JGroup入门]( ) JGroups是完全用Java编写的可靠的组通信工具包。 它基于IP多播(也支持TCP),但是有一些特殊功能,例如可靠性和组...
如果配置了顺序保证,ORDERING协议会确保消息按正确的顺序交付。 - **过滤**:消息过滤器可以在此阶段运行,根据预定义的规则决定是否丢弃或修改消息。 - **事件通知**:一旦消息被验证和处理,JGROUPS会触发...
在 Linux 系统下,这通常涉及到编辑 `jgroup.xml` 文件,配置 UDP 协议以进行节点间的通信。通过 `bind_addr` 参数,我们可以将 IP 地址绑定到特定的网络接口。 Apache 的负载均衡配置主要在 VirtualHost 中完成。...
在压缩包文件“ehcache”中,可能包含了Ehcache的相关文档、示例代码或者配置文件,这些资源可以帮助开发者更深入地理解Ehcache的使用和配置,以及如何利用JGROUPS实现高效的分布式缓存复制。 总的来说,基于...
在Linux环境下,需要修改`jgroup.xml`文件,配置网络通信参数。`bind_addr`参数用于指定Apusic服务器的IP地址,确保集群中的节点能相互通信。 4. **Apache的负载均衡配置**: 在Apache的配置文件中,`VirtualHost...