• 安装etcd


    Etcd关键词

    Raft:etcd所采用的保证分布式系统强一致性的算法。
    Node:一个Raft状态机实例。
    Member: 一个etcd实例。它管理着一个Node,并且可以为客户端请求提供服务。
    Cluster:由多个Member构成可以协同工作的etcd集群。
    Peer:对同一个etcd集群中另外一个Member的称呼。
    Client: 向etcd集群发送HTTP请求的客户端。
    WAL:预写式日志,etcd用于持久化存储的日志格式。
    snapshot:etcd防止WAL文件过多而设置的快照,存储etcd数据状态。
    Proxy:etcd的一种模式,为etcd集群提供反向代理服务。
    Leader(领导者):Raft算法中通过竞选而产生的处理所有数据提交的节点。
    Follower(跟随者):竞选失败的节点作为Raft中的从属节点,为算法提供强一致性保证。
    Candidate:当Follower超过一定时间接收不到Leader的心跳时转变为Candidate开始Leader竞选。
    Term:某个节点成为Leader到下一次竞选开始的时间周期,称为一个Term。
    Index:数据项编号。Raft中通过Term和Index来定位数据。
    

    Etcd工作原理

    从Etcd的架构图中我们可以看到,Etcd主要分为四个部分:
        第1部分是HTTP Server: 用于处理用户发送的API请求,以及其它etcd节点的同步与心跳信息请求。
        第2部分是Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是Etcd对用户提供的大多数API功能的具体实现。
        第3部分是Raft:Raft强一致性算法的具体实现,是Etcd的核心。
        第4部分是WAL:Write Ahead Log(预写式日志),是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd就通过WAL进行持久化存储。
        在WAL中,所有的数据提交前都会事先记录日志。Snapshot是为了防止数据过多而进行的状态快照;Entry表示存储的具体日志内容。
    
        通常,一个用户的请求发送过来,会经由HTTP Server转发给Store,以进行具体的事务处理。如果涉及到节点修改,则交给Raft模块进行状态变更、日志记录;
        然后,再同步给别的etcd节点,以确认数据提交;最后,进行数据提交,再次同步。
    

    安装

    1、下载、解压、将目录名称改为etcd.

     2、复制执行文件到bin目录

    cp etcd etcdctl /usr/local/bin


    3、查看etcd版本:
    etcd --version
    注意:etct3.4.3默认使用v3 所以步骤4可省略,之前版本此步骤不可少,例如:v3.3.10配置环境变量

    4、设置环境变量:
    vi /etc/profile
    export ETCDCTL_API=3

    4.1 刷新环境变量

    source /etc/profile
     

    4.2 查看当前etcdctl的版本信息,v2版本命令和v3命令是不一样的,例如:
    v2查看版本号

    etcdctl -version或 etcdctl -v

    4.3  v3查看版本号

    etcdctl version
     输入命令etcd,即可启动一个单节点的etcd服务,ctrl+c即可停止服务 。

    创建一个etcd服务

    Etcd服务启动成功后,控制台会输出很多信息,重要的几个参数说明如下:
         1.name表示节点名称,默认为default。
         2.data-dir 保存日志和快照的目录,默认为当前工作目录default.etcd/目录下。
         3.在http://localhost:2380和集群中其他节点通信。
         4.在http://localhost:2379提供客户端交互。
         5.heartbeat为100ms,该参数的作用是leader多久发送一次心跳到followers,默认值是          100ms。
         6.election为1000ms,该参数的作用是重新投票的超时时间,如果follow在该时间间隔没          有收到心跳包,会触发重新投票,默认为1000ms。
         7.snapshot count为10000,该参数的作用是指定有多少事务被提交时,触发截取快照保         存到磁盘。
         8.集群和每个节点都会生成一个uuid。
         9.启动的时候会运行raft,选举出leader
     
      请注意,采用这种方式启动的etcd只是一个程序,如果启动etcd的窗口被关闭的话则etcd便会被关闭,所以如果要长期使用的话最好是为etcd开启一个服务,在后台运行。
    
    1.建立Etcd相关目录(即数据文件和配置文件的保存位置)。 
    先看一下有没有再创建
    mkdir -p /var/lib/etcd/ && mkdir -p /etc/etcd/
    创建etcd配置文件
    vim /etc/etcd/etcd.conf
    # 节点名称
    ETCD_NAME="etcd0"
    # 指定数据文件存放位置
    ETCD_DATA_DIR="/var/lib/etcd/"
    创建systemd配置文件。
     vim /etc/systemd/system/etcd.service
    [Unit]
    Description=Etcd Server
    After=network.target
    After=network-online.target
    Wants=network-online.target
     
    [Service]
    User=root
    Type=notify
    WorkingDirectory=/var/lib/etcd/
    ## 根据实际情况修改EnvironmentFile和ExecStart这两个参数值
    ## 1.EnvironmentFile即配置文件的位置,注意“-”不能少
    EnvironmentFile=-/etc/etcd/etcd.conf
    ## 2.ExecStart即etcd启动程序位置
    ExecStart=/usr/local/bin/etcd
    Restart=on-failure
    LimitNOFILE=65536
     
    [Install]
    WantedBy=multi-user.target

    重新加载systemd服务

    systemctl daemon-reload
    验证
    systemctl enable etcd
    systemctl start etcd
    至此单机版etcd安装及测试成功成功,但如果启动失败,可通过如下两个命令查看原因
    systemctl status etcd.service  
    journalctl -xe
    https://blog.csdn.net/weixin_53041251/article/details/122992382
     
     
     
  • 相关阅读:
    SpringBoot整合Swagger-ui
    SpringBoot整合Mybatis之Annotation
    Java的四层结构dto、dao、service、controller
    spring boot 项目开发常用目录结构
    Ubuntu Docker-ce安装
    SQL,NoSQL和NewSQL
    Spring常用注解
    JAVA复习重点知识
    谷歌浏览器收藏内容备份
    网线连上显示无网络连接
  • 原文地址:https://www.cnblogs.com/linuxws/p/16123254.html
Copyright © 2020-2023  润新知