zoukankan      html  css  js  c++  java
  • ETCD:单机单节点

    原文地址:Setting up local clusters

    设置单节点集群

    对于测试环境与开发环境,最快速与简单的方式是配置一个本地集群。对于生产环境,参考集群部分。

    本地单节点集群

    启动一个集群

    运行以下命令来部署一个单节点的etcd集群:

    $ ./etcd
    ...
    

    如果etcd二进制文件不在当前工作目录,那可能位于$GOPATH/bin/etcd或者是/usr/local/bin/etcd.合适地运行命令。
    运行的etcd成员在localhost:2379监听客户端的请求。

    与集群进行交互

    使用etcdctl与运行中的集群进行交互操作
    1. 例子:在集群中存储一个键值对:

    $ ./etcdctl put foo bar
    OK
    

    如果OK被打印在控制台,说明已经成功存储Key-Value对。
    2. 获取键foo对应的值:

    $ ./etcdctl get foo
    bar
    

    如果bar被返回,说明与etcd集群的交互操作和期望中的相同。

    本地多节点集群

    启动一个集群

    etcdgit仓库中存在一个Procfile文件提供一种简单的方式可以对本地多节点集群进行配置。在启动多节点集群之前,将工作目录导向etcd的根目录并执行以下操作:

    1.    安装`goreman`控制基于`Procfile`的应用:
    ```
    $ go get github.com/mattn/goreman
    ```
    2.    使用 `etcd`的配置文件`Procfile`通过`goreman`启动一个集群:
    ```
    $ goreman -f Procfile start
    ```
    集群成员已经启动了,并在`localhost:2379`,localhost:22379`,localhost:32379`监听客户端的请求。
    
    与集群进行交互

    使用etcdctl与运行中的集群进行交互操作:

    1. 打印成员列表:
    $ `etcdctl --write-out=table --endpoints=localhost:2379 member list`
    `etcd`集群中的成员列表显示如下:
    
    ID STATUS NAME PEER ADDRS CLIENT ADDRS
    8211f1d0f64f3269 started infra1 http://127.0.0.1:2380 http://127.0.0.1:2379
    91bc3c398fb3c146 started infra1 http://127.0.0.1:22380 http://127.0.0.1:22379
    fd422379fda50e48 started infra1 http://127.0.0.1:32380 http://127.0.0.1:32379
    2.     例子:在集群中存储一个Key-Value对:
    
    $ ./etcdctl put foo bar
    OK
    

    如果OK被打印在控制台,说明已经成功存储键-值对。

    容错测试

    关闭一个成员然后尝试通过键获取值来进行容错测试:

    1. 获取一个运行中的成员的名字然后停止它:
      Procfile列出了多节点集群的属性信息。例如,名称为etcd2的运行中的成员。
    2. 停止该成员:
    #kill etcd2
    $ goreman run stop etcd2
    

    3.存储一个键:

    $ etcdctl put key hello
    OK
    

    4.获取前一步所存储的键:

    $ etcdctl get key
    hello
    

    5.从已经停止的成员处获取键:

    $ etcdctl --endpoints=localhost:22379 get key
    

    该命令应该由于连接失败展示一个错误:

    2017/06/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
    

    6.重启停止的成员:

    $ goreman run restart etcd2
    

    7.从重启的成员处获取键:

    $ etcdctl --endpoints=localhost:22379 get key
    hello
    

    重启的成员重新建立了连接.etcdctl将能够成功地从重启的成员处接受键,读与etcd进行交互部分学习更多关于与etcd交互的内容。

  • 相关阅读:
    PostgreSQL中enable、disable和validate外键约束
    npm 安装依赖 以及dependencies 和 devDependencies的区别
    Vue2.0项目工程升级3.0
    npm : 无法加载文件 D:Program Files odejs ode_global pm.ps1,因为在此系统上禁止运行脚本。
    有搜索功能的下拉框插件chosen.jquery.js
    jsplumb vue 流程设计器页面
    QRCoder生成二维码
    jquery.jCal.js显示日历插件
    组织架构树后端逻辑
    JavaScript InfoVis Toolkit Jit中的SpaceTree 展现组织结构图
  • 原文地址:https://www.cnblogs.com/cbkj-xd/p/11934569.html
Copyright © 2011-2022 走看看