etcd是一个类似于zk的工具,用于保存值,节点-值这种映射关系的。节点组织结构类似unix文件系统结构,从/最开始。比如一个/test/name节点,值为guanxianseng。可以通过etcdctl这个客户端,执行命令

etcdctl set /test/name guanxianseng

也可以通过客户端命令,获取我们设置的值

etcdctl get /test/name

当然这里返回的值就是

guanxianseng

我们之前设置的

这里etcd与zk还是有区别的。首先,zk使用的是ZAB协议,是雅虎在POXOS协议上修改的。etcd用的是raft协议,也是PAXOS协议的精简版。通过选择leader,客户端将request提交给集群,集群把request打到leader。leader将request发给集群中其余节点,进行询问、提交等动作,保证一致性。

当然,etcd和zk还有其他一些区别。以后,想看的时候在去找找

1. 安装etcd

1.1 如果是centos可以通过

yum install etcd

进行安装

如果是ubuntu,可以通过

apt-get install etcd

这里ubuntu我是猜的,centos我在vmware里面试过可以的。这里可能需要用到root权限。个人比较喜欢root权限,方便

这里,我想吐槽一下ubuntu,经常跳什么出现内部错误。很烦人,centos感觉稳定很多,突然觉得ubuntu很low

1.2 通过官网

https://github.com/coreos/etcd/releases/

下载对应的版本,解压,执行etcd和etcdctl就可以了

1.3 验证安装成功

启动etcd

etcd

执行客户端命令

etcdctl -verison

客户端输出对应的版本号

etcdctl version: 3.1.
API version:

OK,安装成功。其实,就是一解压过程

2. 客户端使用

2.1 可以通过etcdctl在bash里面执行对应的客户端命令。如前面所说的,etcdctl set name guanxianseng ,get命令等

2.2 使用java客户端操作

etcd java客户端有很多,比如etcd4j

https://github.com/adohe/etcd4j

jetcd

https://github.com/diwakergupta/jetcd

我这里使用的是etcd4j

maven依赖

<dependency>
<groupId>com.xqbase</groupId>
<artifactId>etcd4j</artifactId>
<version>1.2</version>
</dependency>

...

照着etcd4j的说明文档来就是了

3. etcd集群

现在,服务器为了高可用,都会搭建集群,防止单点故障。这里etcd也可以搭建集群,不过单机搭建伪集群好像不好弄。经常提示端口已被占用,没有那么多机器。以后用到了在说吧。

最新文章

  1. HDU 2082 找单词 (多重背包)
  2. 运用ASP.NET实现
  3. git 调用 Beyond Compare
  4. inno setup介绍及官方网站地址
  5. Oracle数据库--SQL函数
  6. HDU1757 A Simple Math Problem 矩阵快速幂
  7. jq 7种实例化
  8. 7-ajax的同步和异步?
  9. WITH common_table_expression
  10. Java数据类型及运算
  11. UITableView大总结(上)
  12. Ubuntu 16.04 安装 Docker
  13. Codeforces Round #554 (Div. 2)自闭记
  14. codeforces-1133 (div3)
  15. MySQL如何解决1209错误
  16. AutoMapper 忽略某个字段
  17. PAT甲级1141 Ranking of Institutions
  18. 弹性盒式布局flexbox(dispaly:flex)
  19. CF1146 Forethought Future Cup Elimination Round Tutorial
  20. hashContext

热门文章

  1. 特殊用途语言特性(默认实参/内联函数/constexpr函数/assert预处理宏/NDEBUG预处理变量)
  2. Linux 意外操作后如何进行数据抢救
  3. 详说Flask、Django、Pyramid三大主流 Web 框架
  4. Idea 软件使用快捷键归纳
  5. 老男孩python作业4-ATM程序开发
  6. LeetCode记录之28——Implement strStr()
  7. Go 语言 基础 【第一篇】:package fmt导入
  8. 2.16 关于python/numpy
  9. POJ - 2891 中国剩余定理
  10. mac 系统配置(一)