- 介绍
- 介绍 - 资料收集整理
- 安装 - Linux单机部署
- 官方文档(翻译)
- 官方文档(翻译) - 开发指南
- 开发指南 - 搭建本地集群
- 开发指南 - 和etcd交互
- 开发指南 - API 参考文档
- 开发指南 - API 并发参考文档
- 开发指南 - gRPC 网关
- 开发指南 - gRPC命名与发现
- 开发指南 - 试验性的API和特性
- 开发指南 - 系统限制
- 官方文档(翻译) - 操作etcd集群
- 操作etcd集群 - 搭建etcd集群
- 搭建etcd集群 - 运行时重配置
- 搭建etcd集群 - 运行时重配置的设计
- 操作etcd集群 - 搭建etcd网关
- 操作etcd集群 - 在容器内运行etcd集群
- 操作etcd集群 - 配置
- 操作etcd集群 - 加密(TODO)
- 操作etcd集群 - 维护
- 操作etcd集群 - 理解失败
- 操作etcd集群 - 灾难恢复
- 操作etcd集群 - 性能
- 操作etcd集群 - 版本
- 操作etcd集群 - 支持平台
- 官方文档(翻译) - 学习
- 学习 - 理解数据模型
- 学习 - 理解API
- 学习 - 术语
- 学习 - API保证
- API参考文档(翻译)
- API参考文档(翻译) - KV service
- KV service - Range方法
- KV service - Put方法
- KV service - DeleteRange方法
- KV service - Txn方法
- KV service - Compact方法
- API参考文档(翻译) - Watch service
- Watch service - Watch方法
- API参考文档(翻译) - Lease service
- Lease service - LeaseGrant方法
- Lease service - LeaseRevoke方法
- Lease service - LeaseKeepAlive方法
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
开发指南 - 搭建本地集群
对于测试和开发部署,最快最简单的方式是搭建本地集群。对于产品部署,参考 集群 章节。
本地单独集群
注:
单独集群
指只有一台服务器的集群。
部署etcd集群作为单独集群是直截了当的。仅用一个命令启动它:
$ ./etcd
...
启动的etcd成员在 localhost:2379
监听客户端请求。
通过使用 etcdctl 来和已经启动的集群交互:
# 使用 API 版本 3
$ export ETCDCTL_API=3
$ ./etcdctl put foo bar
OK
$ ./etcdctl get foo
bar
本地多成员集群
注:
多成员集群
指有多台台服务器的集群。
提供 Procfile 用于简化搭建本地多成员集群。通过少量命令来启动多成员集群:
# install goreman program to control Profile-based applications.
$ go get github.com/mattn/goreman
$ goreman -f Procfile start
...
注1: 必须先安装 go,请见章节 Go语言安装
注2: 这里所说的 Procfile 文件是来自 etcd 的 gitub 项目的根目录下的Procfile文件,但是需要修改一下,将里面的bin/etcd
修改为etcd
启动的成员各自在 localhost:12379
, localhost:22379
, 和 localhost:32379
上监听客户端请求。
注: 英文原文中是
localhost:12379
用的是 12379 端口,但是实际上述 Procfile 文件中启动的是 2379 端口,如果连接时发现无法访问,请自行修改。下面的 12379 也是如此,请自行修改为 2379.
通过使用 etcdctl 来和已经启动的集群交互:
# 使用 API 版本 3
$ export ETCDCTL_API=3
$ etcdctl --write-out=table --endpoints=localhost:12379 member list
+------------------+---------+--------+------------------------+------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+--------+------------------------+------------------------+
| 8211f1d0f64f3269 | started | infra1 | http://127.0.0.1:12380 | http://127.0.0.1:12379 |
| 91bc3c398fb3c146 | started | infra2 | http://127.0.0.1:22380 | http://127.0.0.1:22379 |
| fd422379fda50e48 | started | infra3 | http://127.0.0.1:32380 | http://127.0.0.1:32379 |
+------------------+---------+--------+------------------------+------------------------+
$ etcdctl --endpoints=localhost:12379 put foo bar
OK
为了体验etcd的容错性,杀掉一个成员:
# 杀掉 etcd2
$ goreman run stop etcd2
# 注:实测这个命令无法停止etcd,最后还是用ps命令找出pid,然后kill
# ps -ef | grep etcd | grep 127.0.0.1:22379
# kill ****
$ etcdctl --endpoints=localhost:12379 put key hello
OK
$ etcdctl --endpoints=localhost:12379 get key
hello
# 试图从被杀掉的成员获取key
$ etcdctl --endpoints=localhost:22379 get key
2016/04/18 23:07:35 grpc: Conn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:22379: getsockopt: connection refused"; Reconnecting to "localhost:22379"
Error: grpc: timed out trying to connect
# 重启被杀掉的成员
# 注:实测这个restart命令可用
$ goreman run restart etcd2
# 从重启的成员获取key
$ etcdctl --endpoints=localhost:22379 get key
hello
要学习更多和etcd的交互,请阅读 和etcd交互
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论