GOSSIP-43 cleanup sockets, readme, and use lambdas
This commit is contained in:
37
README.md
37
README.md
@ -14,7 +14,8 @@ To gossip you need one or more seed nodes. Seed is just a list of places to init
|
||||
int seedNodes = 3;
|
||||
List<GossipMember> startupMembers = new ArrayList<>();
|
||||
for (int i = 1; i < seedNodes+1; ++i) {
|
||||
startupMembers.add(new RemoteGossipMember("127.0.0." + i, 2000, i + ""));
|
||||
URI uri = new URI("udp://" + "127.0.0.1" + ":" + (50000 + i));
|
||||
startupMembers.add(new RemoteGossipMember(cluster, uri, i + ""));
|
||||
}
|
||||
```
|
||||
|
||||
@ -24,10 +25,9 @@ Here we start five gossip processes and check that they discover each other. (No
|
||||
List<GossipService> clients = new ArrayList<>();
|
||||
int clusterMembers = 5;
|
||||
for (int i = 1; i < clusterMembers+1; ++i) {
|
||||
GossipService gossipService = new GossipService("127.0.0." + i, 2000, i + "",
|
||||
LogLevel.DEBUG, startupMembers, settings, null);
|
||||
clients.add(gossipService);
|
||||
gossipService.start();
|
||||
URI uri = new URI("udp://" + "127.0.0.1" + ":" + (50000 + i));
|
||||
GossipService gossipService = new GossipService(cluster, uri, i + "",
|
||||
startupMembers, settings, (a,b) -> {});
|
||||
}
|
||||
```
|
||||
|
||||
@ -47,22 +47,24 @@ For a very simple client setup with a settings file you first need a JSON file s
|
||||
|
||||
```json
|
||||
[{
|
||||
"id":"419af818-0114-4c7b-8fdb-952915335ce4",
|
||||
"port":50001,
|
||||
"cluster":"9f1e6ddf-8e1c-4026-8fc6-8585d0132f77",
|
||||
"id":"447c5bec-f112-492d-968b-f64c8e36dfd7",
|
||||
"uri":"udp://127.0.0.1:50001",
|
||||
"gossip_interval":1000,
|
||||
"cleanup_interval":10000,
|
||||
"members":[
|
||||
{"host":"127.0.0.1", "port":50000}
|
||||
{"cluster": "9f1e6ddf-8e1c-4026-8fc6-8585d0132f77","uri":"udp://127.0.0.1:5000"}
|
||||
]
|
||||
}]
|
||||
```
|
||||
|
||||
where:
|
||||
|
||||
* `cluster` - is the name of the cluster
|
||||
* `id` - is a unique id for this node (you can use any string, but above we use a UUID)
|
||||
* `port` - the port to use on the default adapter on the node's machine
|
||||
* `uri` - is a URI object containing IP/hostname and port to use on the default adapter on the node's machine
|
||||
* `gossip_interval` - how often (in milliseconds) to gossip list of members to other node(s)
|
||||
* `cleanup_interval` - when to remove 'dead' nodes (in milliseconds)
|
||||
* `cleanup_interval` - when to remove 'dead' nodes (in milliseconds) (deprecated may be coming back)
|
||||
* `members` - initial seed nodes
|
||||
|
||||
Then starting a local node is as simple as:
|
||||
@ -96,13 +98,14 @@ These can be accessed from the `GossipManager` on your `GossipService`, e.g:
|
||||
Users can also attach an event listener:
|
||||
|
||||
```java
|
||||
GossipService gossipService = new GossipService("127.0.0." + i, 2000, i + "", LogLevel.DEBUG,
|
||||
startupMembers, settings,
|
||||
new GossipListener(){
|
||||
@Override
|
||||
public void gossipEvent(GossipMember member, GossipState state) {
|
||||
System.out.println(member+" "+ state);
|
||||
}
|
||||
GossipService gossipService = new GossipService(cluster, uri, i + "", startupMembers,
|
||||
settings, new GossipListener() {
|
||||
@Override
|
||||
public void gossipEvent(GossipMember member, GossipState state) {
|
||||
System.out.println(System.currentTimeMillis() + " Member " + j + " reports "
|
||||
+ member + " " + state);
|
||||
}
|
||||
});
|
||||
//The lambda syntax is (a,b) -> { } //NICE!
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user