org.jgroups.stack
Class GossipRouter
java.lang.Object
org.jgroups.stack.GossipRouter
public class GossipRouter
extends java.lang.Object
Router for TCP based group comunication (using layer TCP instead of UDP).
Instead of the TCP layer sending packets point-to-point to each other
member, it sends the packet to the router which - depending on the target
address - multicasts or unicasts it to the group / or single member.
This class is especially interesting for applets which cannot directly make
connections (neither UDP nor TCP) to a host different from the one they were
loaded from. Therefore, an applet would create a normal channel plus
protocol stack, but the bottom layer would have to be the TCP layer which
sends all packets point-to-point (over a TCP connection) to the router,
which in turn forwards them to their end location(s) (also over TCP). A
centralized router would therefore have to be running on the host the applet
was loaded from.
An alternative for running JGroups in an applet (IP multicast is not allows
in applets as of 1.2), is to use point-to-point UDP communication via the
gossip server. However, then the appplet has to be signed which involves
additional administrative effort on the part of the user.
Since 2.1.1 the GossipRouter is also able to answer Gossip requests. Instead
of running different Router and GossipServer processes, is enough just to
run a single GossipRouter. This should simplify the administration of a
JG realm that has needs gossip and routing services.
- Bela Ban
- Ovidiu Feodorov
- 2.1.1
DUMP
public static final int DUMP
- -21
EXPIRY_TIME
public static final long EXPIRY_TIME
- 30000L
GET
public static final int GET
- -10
GOSSIP_REQUEST_TIMEOUT
public static final long GOSSIP_REQUEST_TIMEOUT
- 1000L
PORT
public static final int PORT
- 8980
REGISTER
public static final int REGISTER
- -11
ROUTING_CLIENT_REPLY_TIMEOUT
public static final long ROUTING_CLIENT_REPLY_TIMEOUT
- 120000L
SHUTDOWN
public static final int SHUTDOWN
- -1
SHUTDOWN_OK
public static final int SHUTDOWN_OK
- -2
GossipRouter
public GossipRouter()
GossipRouter
public GossipRouter(int port)
GossipRouter
public GossipRouter(int port,
String bindAddressString)
GossipRouter
public GossipRouter(int port,
String bindAddressString,
long expiryTime)
GossipRouter
public GossipRouter(int port,
String bindAddressString,
long expiryTime,
long gossipRequestTimeout,
long routingClientReplyTimeout)
create
public void create()
throws Exception
JBoss MBean lifecycle operation.
destroy
public void destroy()
JBoss MBean lifecycle operation.
dumpGossipTable
public String dumpGossipTable()
dumpRoutingTable
public String dumpRoutingTable()
getBindAddress
public String getBindAddress()
getExpiryTime
public long getExpiryTime()
getGossipRequestTimeout
public long getGossipRequestTimeout()
getPort
public int getPort()
getRoutingClientReplyTimeout
public long getRoutingClientReplyTimeout()
isStarted
public boolean isStarted()
main
public static void main(String[] args)
throws Exception
requestTypeToString
public static String requestTypeToString(int type)
setBindAddress
public void setBindAddress(String bindAddress)
setExpiryTime
public void setExpiryTime(long expiryTime)
setGossipRequestTimeout
public void setGossipRequestTimeout(long gossipRequestTimeout)
setPort
public void setPort(int port)
setRoutingClientReplyTimeout
public void setRoutingClientReplyTimeout(long routingClientReplyTimeout)
start
public void start()
throws Exception
JBoss MBean lifecycle operation. Called after create(). When this method
is called, the managed attributes have already been set.
Brings the Router in fully functional state.
stop
public void stop()
JBoss MBean lifecycle operation. The JMX agent allways calls this method
before destroy(). Close connections and frees resources.
Copyright B) 2001,2002 www.jgroups.com . All Rights Reserved.