Jgossip - gossip协议的开源实现
Gossip是一种一致性协议,在系统设计和开发当中有着广泛的应用,网上有一些开源实现,但是并不好用有些甚至出现了一些bug,于是乎,花了一些时间,动手写了一个,目前已经在公司内部运行了几年,效果良好,并且已经开源在Github上,以飨各位。 特点: API简洁 支持3种事件: UP DOWN JOIN 基于Vert.X 引入: <dependency> <groupId>net.lvsq</groupId> <artifactId>jgossip</artifactId> <version>1.3.2</version> </dependency> 一个简单的例子: int gossip_port = 60001; String cluster = "gossip_cluster"; GossipSettings settings = new GossipSettings(); settings.setGossipInterval(1000); try { String myIpAddress = InetAddress.getLocalHost().getHostAddress(); List<SeedMember> seedNodes = new ArrayList<>(); SeedMember seed = new SeedMember(); seed.setCluster(cluster); seed.setIpAddress(myIpAddress); seed.setPort(60001); seedNodes.add(seed); gossipService = new GossipService(cluster, myIpAddress, gossip_port, null, seedNodes, settings, (member, state) ->System.out.println("member:" + member + " state: " + state)); } catch (Exception e) { e.printStackTrace(); } gossipService.start(); 详细介绍请看 => 项目地址 ...