JGroup是一种可靠的群组通讯工具,用Java实现。JGroup以IP多播为基础并且提供可靠性和群组功能。
其中,可靠性包括
1,消息不丢失
2,大消息拆分和重组功能
3,保证消息有序性
4,消息原子性(某条消息要么全部成员都收到,或都收不到)
群组功能包括
1,群组成员知道群组内所有其他成员
2,当群组发生以下的事件,所有群组成员都能收到通知:
a) 新组员加入群
b) 旧组员离开群
c) 某现有组员意外脱离群
IP多播与JGroup的区别如下:
Unreliable Reliable
Unicast UDP TCP
Multicast IP Multicast JGroups
单播(Unicast)通信中,一个发送者只发送给一个接收者。单播有UDP和TCP两种方式,UDP协议是不可靠的协议,
传输中,包可能会丢失,重复,无序且有大小限制。TCP其实也属于单播,但TCP是可靠的,提供重传机制防止包丢失,
包的传输具有有序性,且TCP重组机制可以在传送大文件前将文件分割成碎片。
在多播(Multicast)中,发送者向多个接收者发送信息,IP多播扩展自UDP协议,发送者将消息发送给制定的多播地
址,接受者加入多播地址且接收这些信息。受UDP协议限制,IP多播仍然是不可靠的,且没有考虑到群组功能(如无法判
断哪些接收者加入了多播地址)。
JGroups扩展于可靠的单播传输机制(类似TCP)至多播,它在IP多播的基础上同时提供可靠性和群组功能。由于每
个产品都有不同的可靠性需求,所以,JGroups提供一种灵活的协议栈,这种协议栈可以让用户根据不同的可靠性指标,在
对可靠性高且速度慢和可靠性差但速度快的效果之间作出折衷的量化选择。
原文:http://blog.csdn.net/huangzhq/article/details/291761
分享到:
相关推荐
JGroup支持多种消息模式,如单播、广播、多播和有序消息。其中,`UNICAST`和`BROADCAST`协议分别用于点对点和广播通信,而`TOTAL`和`FLUSH`协议则确保消息的全局顺序。此外,JChannel类提供了API接口,使开发者能够...
TCP协议的`start_port`属性指定起始端口,如果被占用则自动寻找下一个可用端口。TCPPING会尝试连接指定主机的指定范围内端口。 **4.2 可靠消息** **4.2.1 pbcast.NAKACK** NAKACK协议确保消息能可靠地传递给集群中...
JGroup提供了多种协议栈,这些协议栈由一系列层次化的协议组成,每个协议负责不同的任务,如组成员发现、消息传递、故障检测等。例如,`TCPPING`用于初始组成员发现,`FD`(故障检测)协议检测并处理网络中的失效...
当集群成员分布在WAN(广域网)中,由于路由器会丢弃IP多播包,TCP成为唯一可行的传输协议。TCP支持以下几种发现协议: - **PING with GossipRouter**:与UDP类似,需要设置`p_mcast="false"`,并预先启动...
EHCAHCE基于JGROUP的集群配置方案,内含相关配置文件,及配置说明
JGroups支持多种传输层协议,包括TCP、UDP和多播等,并允许开发人员自定义网络栈来满足特定的应用需求。JGroups的核心组成部分是**通道(Channel)**,它为应用程序提供了一个简单的API来发送和接收消息。 - **通道...
它支持多种传输层协议,如UDP、TCP等,并提供了一系列高级特性,比如组播、广播、心跳检测以及故障恢复机制等。通过JGroups,开发者可以轻松地构建出复杂而强大的分布式系统。 ### 二、安装JGroups #### 2.1 下载 ...
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 in action》是一本关于JGroups工具包的书籍,它详细介绍了如何使用JGroups进行可靠的多播通信。JGroups是强大的UUP(User-level UDP)开源组件,已被JBoss采用,用于底层通信。下面我们将...
它可以提供多种通信模式(如广播、多播等),并且支持多种网络协议。在本项目中,JGroups 被用来实现局域网内的客户端之间的通信功能。 具体而言,作者创建了一个名为 `IMTest4` 的类,其中初始化了一个 `JChannel`...
JGroups是一个开源项目,它提供了一种跨平台的、基于多播的集群通信解决方案。它支持各种通信模式,如点对点(P2P)、总线拓扑、树形拓扑等,并且具备高度可配置性。JGroups的核心功能包括: 1. **节点发现**:新...
JGroup 的核心特性之一是其灵活的协议栈。用户可以通过配置 XML 文件来定制所需的通信特性。例如,通过添加 `COMPRESS` 协议,可以启用消息压缩以提高网络效率;通过启用加密和认证协议,可以确保数据安全,只有经过...
JGroup可以基于TCP协议来实现消息广播,也可以通过UDP方式来广播消息,利弊不言而喻,TCP可靠,但是代价大,性能没有UDP来的好,UDP速度快,代价小,但是消息的丢失率以及无序性有着很大的限制。但是JGroup在UDP方式...
JGroup可以通过其强大的集群通信能力,实现二级缓存的分布式管理,使得多个应用服务器可以共享同一份缓存,提高系统整体性能。 1. **缓存同步**:JGroup通过消息传递机制,确保当一个节点修改了缓存数据后,其他...
JSON基于JavaScript的一个子集,但它是独立于语言的,支持多种编程语言。在Web服务中,JSON常用于传输数据,因为它具有较高的解析速度和较小的传输数据量。在Java中,有多种库如Jackson、Gson等可以方便地将Java对象...
它基于IP多播(也支持TCP),但是有一些特殊功能,例如可靠性和组成员身份。 在这个项目中,我通过使用JGroups作为消息传递工具实现了分布式(复制)堆栈和集合。 这些复制的数据结构将使用状态转移来处理新成员...
组协议栈是由多个协议层组成的,如UDP、TCP、FRAG等,每个协议层都有特定的职责,如网络传输、消息分片或重传。 - **协议处理**:消息通过协议栈时,每个协议层都有机会修改或处理消息,如添加头信息、确保顺序等...
在IT行业中,分布式缓存是一种优化高并发场景下数据访问性能的重要技术,它通过在网络中的多台服务器上分发数据来提高系统的响应速度和可扩展性。本文将深入探讨基于JGROUPS的Ehcache实现的分布式缓存复制,这是一种...
对于分布式缓存,可以设置UDP多播或TCP单播模式。多播模式下,节点通过网络广播发现彼此;单播模式则需要指定其他节点的IP地址,实现点对点通信。此外,还需要配置缓存节点,定义每个节点的名称、缓存策略等。 3. *...