ETCD是一种高度一致的分布式键值(KV)存储,值接口仅有字符串类型。它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它在网络分区期间优雅地处理领导者选举,并且可以容忍机器故障,即使在主节点中也是如此。
ETCD3单节点默认使用2379端口提供HTTP API服务,多节点默认使用2380端口进行节点间的通信。ETCD在启动时采用raft算法,实现分布式系统数据的可用性和一致性。进行Leader的选举。
引入jar包
<dependency>
<groupId>com.ibm.etcd</groupId>
<artifactId>etcd-java</artifactId>
<version>0.0.18</version>
</dependency>
etcd接口
import java.util.List;
public interface IEtcdClient {
/**
* 存入key,value
*/
void put(String key, String value);
/**
* 存入key、value,和租约id
*/
void put(String key, String value, long leaseId);
/**
* 存入key、value,和过期时间,单位是秒
*/
void putAndGrant(String key, String value, long ttl);
/**
* 删除key
*/
void delete(String key);
/**
* 根据key,获取value
*/
String get(String key);
/**
* 获取指定前缀的所有key-value
*/
List<KeyValue> getPrefix(String key);
/**
* 监听key
*/
KvClient.WatchIterator watch(String key);
/**
*