概述
etcd项目
先说一下什么是etcd,etcd是一个数据库,它的目标是构建一个高可用的分布式键值数据库,它是基于GO语言实现.在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题.CoreOS项目就希望基于etcd来解决这一问题.
etcd再设计的时候重点考虑了下面四个要素:
1.简单:支持REST风格的HTTP+JSON API
2.安全:支持HTTPS方式的访问
3.快速:支持并发1k/s的写操作
4.可靠:支持分布式结构,基于Raft的一致性算法.
一般情况下,用户使用etcd可以在多个节点上启动多个实例,并添加它们为一个集群,同一个集群中的etcd实例将会保持彼此信息的一致性.
先来说一下如何安装etcd,楼主在网上看到的关于etcd的安装方式一般都是使用AWS上的二进制代码,但是这样的后果是连接超时,因为需要翻墙,所以导致无法安装.楼主开始了漫长的寻找,结果楼主没找到...
楼主最终找到了一个办法,翻墙...开始的时候,楼主一直觉得肯定有国内源,现在楼主也坚信存在国内的源,但是楼主没找到,肯定有!!楼主选择了翻墙,因为楼主用的VPN是别人的服务器,这里实在不好意思公布出来...对不起了各位...
如果你的ubuntu可以翻墙的话,你可以接着往下看,如果你没找到其他的安装方式,可以不看,如果你找到了其他的安装方式,欢迎来电.
二进制方式下载
编译好的二进制文件都放在AWS的服务器上,这就是需要翻墙的原因.咱们使用curl工具下载压缩包,并解压
curl -L
https://github.com/coreos/etcd/releases/download/v2.0.0-rc.1/etcd-v2.0.0-rc.1-linux-amd64.tar.gz -o etcd-v2.0.0-rc.1-linux-amd64.tar.gz
tar xzvf etcd-v2.0.0-rc.1-linux-amd64.tar.gz
cd etcd-v2.0.0-rc.1-linux-amd64
解压后,可以看到文件包括:
$ls
etcd
etcdctl
etcd-migrate
README-etcdctl.md
README.md
其中etcd是服务主文件,etcdctl是提供给用户的命令客户端,etcd-migrate负责进行迁移.
将三个文件都放到系统可执行目录 /usr/local/bin/或者/usr/bin/
$cp etcd* /usr/local/bin/
运行etcd,经默认组建一个两个节点的集群.数据库服务默认监听在2379和4001端口,etcd实例监听在2380和7001端口.显示类似如下的信息:
$./etcd
2016/06/12 06:00:39 no data-dir provided, using default data-dir ./default.etcd
2016/06/12 06:00:39 etcd: listening for peers on http://localhost:2380
2016/06/12 06:00:39 etcd: listening for peers on http://localhost:7001
2016/06/12 06:00:39 etcd: listening for client requests on http://localhost:2379
2016/06/12 06:00:39 etcd: listening for client requests on http://localhost:4001
2016/06/12 06:00:39 etcdserver: name = default
此时,可以使用etcdctl命令进行测试,设置和获取键值testkey:”hello world”,检查etcd服务是否启动成功:
$./etcdctl set testkey “hello world”
hello world
$./etcdctl get testkey
hello world
说明etcd服务已经成功启动了.
当然,你完全可以再打卡一个终端,通过HTTP访问本地2379或者4001端口的方式来进行操作,例如查看testkey的值:
$curl -L http://localhost:4001/v2/keys/testkey
使用etcdctl
etcdctl是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟etcd打交道,而无需基于HTTP API方式.etcd项目中已经包含了etcdctl工具,该工具支持如下的命令,大体上分为数据库操作和非数据库操作.
数据库操作无非就是CRUD.
重点说一下非数据库操作
backup
备份etcd的数据
支持的选项包括
--data-dir etcd的数据目录
--backup-dir 备份到指定路径
watch
检测一个值的变化,一旦键值发生更新,就会输出最新的值并退出.
例如,用户更新testkey键值为Hello world
$etcdctl watch testkey
Hello world
支持的选项包括
--forever
一直监测,直到用户按 `CTRL+C` 退出
--after-index '0'
在指定 index 之前一直监测
--recursive
返回所有的键值和子键值
exec-watch
检测一个键值的变化,一旦键值发生更新,就执行给定命令.
例如,用户更新testkey键值.
$etcdctl exec-watch testkey -- sh -c ‘ls’
default.etcd
Documentation
etcd
etcdctl
etcd-migrate
README-etcdctl.md
README.md
支持的选项包括
--after-index ‘0’ 在指定index之前一直检测
--recursive 返回所有的键值和子键值
member
通过list,add,remove命令列出,添加,删除etcd实例到etcd集群中.
例如,本地启动一个etcd服务失利后,可以用如下命令进行查看.
$etcdctl member list
能看到输出信息.
最后
以上就是朴实皮带为你收集整理的etcd项目etcd项目的全部内容,希望文章能够帮你解决etcd项目etcd项目所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复