Skip to content
This repository has been archived by the owner on Jan 13, 2023. It is now read-only.

Latest commit

 

History

History
80 lines (78 loc) · 2.92 KB

install.md

File metadata and controls

80 lines (78 loc) · 2.92 KB

 

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中...