etcd单机搭建及简单使用

 

1. 首先应该下载etcd的linux版本,并将压缩包传输到阿里云服务器上 https://github.com/etcd-io/etcd/releases

 

2. 简单说一下sftp的从本机传输到远程服务器的指令

lcd /Users/xxx/Downloads
put etcd-v3.5.2-linux-amd64.tar.gz /root

 

3. 连接到服务器,进入root解压etcd安装文件

tar -zxvf etcd-v3.5.2-linux-amd64.tar.gz

 

4. 进入解压目录,开启etcd后台服务

nohup ./etcd --listen-client-urls 'http://0.0.0.0:2379' --advertise-client-urls 'http://0.0.0.0:2379'  &

对公网开启了端口号2379,只是为了测试使用,实际上etcd不应该对公网暴露端口号

 

5. 检查etcd是否正常开启

less nohup.out

 

6. 一些关于key-value的简单操作

./etcdctl put "name" "own"
./etcdctl get "name"

 

因为etcd中的key是有序的,所以我们可以构建一个抽象的目录结构,来管理项目

./etcdctl put "myjob/cronjobs/job1" "{job1's json}"
./etcdctl put "myjob/cronjobs/job2" "{job2's json}"

 

同时可以另起一个工作台,watch myjob/cronjobs/这个前缀,实时跟踪定时任务的变化

./etcdctl watch --prefix "myjob/cronjobs/"

 

我们修改一下job1的value(在任务调度里可以认为是修改了任务的配置文件等),只要我们在job开启etcd的watch,就可以实时监控到对应的value的变化

./etcdctl put "myjob/cronjobs/job1" "{job1's json hello}"

 

watch到如下修改

root@xxxx:~/etcd-v3.5.2-linux-amd64# ./etcdctl watch --prefix "myjob/cronjobs/"
PUT
myjob/cronjobs/job1
{job1's json hello}

 

 7.golang使用etcd客户端

首先需要安装v3版本的客户端,包很大,运气好的话才能down下来

go get go.etcd.io/etcd/client/v3

 

配置客户端并建立连接

func main() {
	config := clientv3.Config{
		Endpoints:   []string{":2379"},
		DialTimeout: 5 * time.Second,
	}

	// 建立连接
	client, err := clientv3.New(config)
	if err != nil {
		fmt.Println(err)
		return
	}

}

其中可以Endpoints是一个string类型的切片,etcd客户端是支持高可用的

 

我还在go get中... 

 

posted @ 2022-03-15 16:39  aganippe  阅读(643)  评论(0编辑  收藏  举报