zoukankan      html  css  js  c++  java
  • consul[安装/服务启用/注册].md

    简介

    使用场景
        Consul用于服务注册、发现与配置共享
    

    install

    wget https://releases.hashicorp.com/consul/1.7.2/consul_1.7.2_linux_amd64.zip
    unzip consul_1.7.2_linux_amd64.zip
    sudo mv consul /bin/
    
    • 验证安装成功
      consul -v

    consul 单点

    • 启动一个client
      consul agent -dev -ui -client 0.0.0.0
    • 查看节点信息
      启动后即可通过 IP:8500 打开管理界面查看节点信息(同集群模式在Web客户端查看节点信息)
    • 也可通过命令行查看节点信息
      curl IP:8500/v1/catalog/nodes

    consul 集群模式

    每个服务对应一个主机[或虚拟主机]
    
    • 启动一个server
      consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=biby-1 -ui -client 0.0.0.0 -bind 192.168.10.10 -join 192.168.10.10
    • 启动一个client
      consul agent -data-dir /tmp/consul -node=biby-c1 -ui -client 0.0.0.0 -bind 12.12.12.12 -join 192.168.10.10

    在web客户端查看节点信息

    在consul服务机器查看节点信息[集群成员]

    在不同的机器上都能看到相同的consul节点信息
    consul members
    

    查看成员角色

    consul operator raft list-peers

    参数说明

    参数名 说明
    agent 核心命令[维护成员信息/运行状态监测/声明服务/清理请求]
    server server模式
    client 客户端服务注册的地址,可以和当前server一致,也可以是其他主机地址,默认127.0.0.1
    ui 开启web控制台
    bootstrap-expect 想要创建的集群数组[官方建议3或5]
    data-dir 数据存储目录
    node 节点名称
    bind 集群通讯地址
    join 加入的集群地址

    服务注册

    通过HTTP API注册服务

    注册一个ID为 userServiceId, name为 userService 的服务
    
    curl http://127.0.0.1:8500/v1/agent/service/register -X PUT -i -H "Content-Type:application/json" -d '{
      "ID": "userServiceId",  
      "Name": "userService",
      "Tags": [
        "primary",
        "v1"
      ],
      "Address": "127.0.0.1",
      "Port": 8000,
      "EnableTagOverride": false,
      "Check": {
        "DeregisterCriticalServiceAfter": "90m",
        "HTTP": "http://www.baidu.com",
        "Interval": "10s"
      }
    }'
    

    查看服务是否注册成功

    curl http://127.0.0.1:8500/v1/catalog/service/userService
    

    通过管理界面查看已注册的服务

    健康检查

    curl http://192.168.10.10:8500/v1/health/service/userService?passing
    

    注册字段说明

    {
      "ID": "userServiceId", //服务id
      "Name": "userService", //服务名
      "Tags": [              //服务的tag,自定义,可以根据这个tag来区分同一个服务名的服务
        "primary",
        "v1"
      ],
      "Address": "127.0.0.1",//服务注册到consul的IP,服务发现,发现的就是这个IP
      "Port": 8000,          //服务注册consul的PORT,发现的就是这个PORT
      "EnableTagOverride": false,
      "Check": {             //健康检查部分
        "DeregisterCriticalServiceAfter": "90m",
        "HTTP": "http://www.baidu.com", //指定健康检查的URL,调用后只要返回20X,consul都认为是健康的
        "Interval": "10s"   //健康检查间隔时间,每隔10s,调用一次上面的URL
      }
    
  • 相关阅读:
    C++泛型指针的正向与逆向循环读取的改进方法
    C++泛型指针的正向与逆向循环读取时报错Expreeeion:vector iterator + offset out of range问题
    模块“Project”的符号未加载
    简单的验证码Winform程序
    Dapper.Database<TDatabase>QueryMultiple()报错
    IE6IE7 div样式做的下拉框被遮住问题
    统计数据库已分组的表数据行数
    linux远程下载文件 的两种方法之 ftp命令和scp命令
    Oracle多表连接查询区别
    小程序(三)
  • 原文地址:https://www.cnblogs.com/biby/p/12872499.html
Copyright © 2011-2022 走看看