菜鸟笔记
提升您的技术认知

windows系统下etcd的安装与使用

一、简介

  etcd是一个分布式一致性键值存储,其主要用于分布式系统的共享配置和服务发现。

  etcd由Go语言编写

二、下载并安装

  1.下载地址:

  Releases · etcd-io/etcd · GitHub

2. 将压缩文件解压到指定文件夹

 解压后的目录如下:

 

其中etcd.exe是服务端,etcdctl.exe是客户端

二、简单实用

1. 点击etcd.exe运行etcd服务

2. 客户端是有etcdctl来执行命令的

  1)帮助文档

  

  在安装目录命令提示符中执行 etcdctl help 可以查看etcdctl的基本命令如下:

NAME:

   etcdctl - A simple command line client for etcd.



USAGE:

   etcdctl [global options] command [command options] [arguments...]



VERSION:

   3.3.8



COMMANDS:

     backup          backup an etcd directory

     cluster-health  check the health of the etcd cluster

     mk              make a new key with a given value

     mkdir           make a new directory

     rm              remove a key or a directory

     rmdir           removes the key if it is an empty directory or a key-value pair

     get             retrieve the value of a key

     ls              retrieve a directory

     set             set the value of a key

     setdir          create a new directory or update an existing directory TTL

     update          update an existing key with a given value

     updatedir       update an existing directory

     watch           watch a key for changes

     exec-watch      watch a key for changes and exec an executable

     member          member add, remove and list subcommands

     user            user add, grant and revoke subcommands

     role            role add, grant and revoke subcommands

     auth            overall auth controls

     help, h         Shows a list of commands or help for one command



GLOBAL OPTIONS:

   --debug                          output cURL commands which can be used to reproduce the request

   --no-sync                        don't synchronize cluster information before sending request

   --output simple, -o simple       output response in the given format (simple, `extended` or `json`) (default: "simple")

   --discovery-srv value, -D value  domain name to query for SRV records describing cluster endpoints

   --insecure-discovery             accept insecure SRV records describing cluster endpoints

   --peers value, -C value          DEPRECATED - "--endpoints" should be used instead

   --endpoint value                 DEPRECATED - "--endpoints" should be used instead

   --endpoints value                a comma-delimited list of machine addresses in the cluster (default: "http://127.0.0.1:2379,http://127.0.0.1:4001")

   --cert-file value                identify HTTPS client using this SSL certificate file

   --key-file value                 identify HTTPS client using this SSL key file

   --ca-file value                  verify certificates of HTTPS-enabled servers using this CA bundle

   --username value, -u value       provide username[:password] and prompt if password is not supplied.

   --timeout value                  connection timeout per request (default: 2s)

   --total-timeout value            timeout for the command execution (except watch) (default: 5s)

   --help, -h                       show help

   --version, -v                    print the version

2)查看版本号  etcdctl --version

  

3) 由于文档中建议API version的版本设为3

  设置版本set ETCDCTL_API=3

 

即可设置API version,设置成功后etcdctl help查看版本3和2命令和功能方面有不少的差别

3)通过put和get 存取值

 

存取key为hello,value为world

 

获取key为hello的值

常见的错误

当我们双击可执行文件出现闪退时说明etcd服务无法正常启动,此时我们可以通过在命令提示符中打开执行文件

1.端口被占用

etcd默认使用2379,启动etcd服务时提示2379端口被占用,启动失败

我们看到有个虚拟机的程序占用了2379端口,此时我们可以kill掉占用改端口的程序(如果是不重要的程序可以kill掉的话),或者我们修改etcd服务启动监听的端口

etcd启动如果需要自定义参数的话,需要指定配置文件,并且配置文件的内容需要是json格式,我们创建etcd.conf文件,并且写入监听的端口配置   {"listen-client-urls":"http://localhost:12379"}

我们可以通过指定配置文件启动etcd服务

> etcd.exe --config-file etcd.conf

etcd服务启动正常

当我们自定义了etcd的服务监听端口时,使用etcdctl客户端工具时也需要通过--endpoints=127.0.0.1:12379 参数指定

完美