zoukankan      html  css  js  c++  java
  • Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录):

    Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStack 等相比,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 用 Golang 实现,因此具有天然可移植性(支持 Linux、windows 和 Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。

    Consul 功能:

    • 服务发现(Service Discovery):客户端通过 Consul 提供服务,其他客户端可以通过 Consul 利用 dns 或者 http 发现依赖服务
    • 健康检查(Health Checking): Consul 提供任务的健康检查,可以用来操作或者监控集群的健康,也可以在服务发现时去除失效的服务
    • 键值对存储(Key/Value Store): 存储层级键值对
    • 多数据中心(Multi Datacenter): Consul 支持开箱即用的多数据中心

    架构图:


    Mac OS 安装(使用 homebrew):

    $ brew install consul
    

    Ubuntu 安装:

    $ wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip
    $ sudo apt-get install unzip
    
    $ ls
    
    $ unzip consul_0.7.2_linux_amd64.zip
    $ sudo mv consul /usr/local/bin/consul
    
    $ wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_web_ui.zip
    $ unzip consul_0.7.2_web_ui.zip
    $ mkdir -p /usr/share/consul
    $ mv dist /usr/share/consul/ui
    

    Consul 压缩包地址:https://www.consul.io/downloads.html

    验证安装是否成功:

    $ consul
    usage: consul [--version] [--help] <command> [<args>]
    
    Available commands are:
        agent          Runs a Consul agent
        event          Fire a new event
        exec           Executes a command on Consul nodes
        force-leave    Forces a member of the cluster to enter the "left" state
        info           Provides debugging information for operators
        join           Tell Consul agent to join cluster
        keygen         Generates a new encryption key
        leave          Gracefully leaves the Consul cluster and shuts down
        members        Lists the members of a Consul cluster
        monitor        Stream logs from a Consul agent
        reload         Triggers the agent to reload configuration files
        version        Prints the Consul version
        watch          Watch for changes in Consul
    

    配置 Consul(官方资料):

    $ consul agent -dev
    $ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -ui  -config-dir /etc/consul.d -bind=192.168.1.100
    $ consul agent -data-dir /tmp/consul -node=ubuntu64 -bind=10.9.10.176
    

    上面三种配置说明:

    1. Sever 模式,快捷配置,一般用于调试模式,不建议使用
    2. Sever 模式
    3. Client 模式

    配置参数说明:

    • -server:- Serve 模式(不配置为 Client 模式),数量一般为 3-5 个
    • -bootstrap-expect: - Server 数量
    • -data-dir: - 数据目录
    • -ui-dir: - UI目录
    • -node: - Node名称
    • -bind: - 集群通讯地址

    Server 模式后台访问地址:http://localhost:8500

    其他命令:

    • consul members:查看集群成员
    • consul info:查看当前服务器的状况
    • consul leave:退出当前服务集群
    • ctrl + c:停止服务

    consul members命令示例:

    Node                Address            Status  Type    Build  Protocol  DC
    server1.consul.com  200.21.1.101:8301  alive   server  0.5.2  2         dc1
    agent1.consul.com   200.21.1.201:8301  alive   client  0.5.2  2         dc1
    agent2.consul.com   200.21.1.202:8301  alive   client  0.5.2  2         dc1
    server2.consul.com  200.21.1.102:8301  alive   server  0.5.2  2         dc1
    server3.consul.com  200.21.1.103:8301  alive   server  0.5.2  2         dc1
    agent3.consul.com   200.21.1.203:8301  alive   client  0.5.2  2         dc1
    

    参考资料:

  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/xishuai/p/macos-ubuntu-install-consul.html
Copyright © 2011-2022 走看看