consul详解

服务注册发现

149

  • 服务A-N把当前自己的网络位置注册到服务发现模块(服务注册)
  • 客户端在调用服务A-N的时候,就先去服务发现模块查询它们的网络位置,然后再去调用它们的目标服务。

consul 简介

consul是一个支持多数据中分布式高可用的服务发现和配置共享的服务软件。

service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现。

health checking:健康检查使consul可以快速的警告在集群中的操作,和服务发现的集成,可以防止请求转发到故障的服务上。

key/value storage:一个用来存储动态配置的系统,提供简单的http接口,可以在任何地方操作。

consul角色

client

客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群.

server

服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯. 每个数据中心的 server 数量推荐为 3 个或是 5 个.

常用命令

命令解释示例
agent运行一个consul agentconsul agent -dev
join将agent加入到consul集群consul join IP
members列出consul cluster集群中的membersconsul members
leave将节点移除所在集群consul leave

consul agent

  • -data-dir
    • 作用:指定agent储存状态的数据目录
    • 这是所有agent都必须的
    • 对于server尤其重要,因为他们必须持久化集群的状态
  • -config-dir
    • 作用:指定service的配置文件和检查定义所在的位置
    • 通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
  • -config-file
    • 作用:指定一个要装载的配置文件
    • 该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
  • -dev
    • 作用:创建一个开发环境下的server节点
    • 该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
    • 这种模式不能用于生产环境(因为第二条)
  • -bootstrap-expect
    • 作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。
  • -node
    • 作用:指定节点在集群中的名称
    • 该名称在集群中必须是唯一的(默认采用机器的host)
    • 推荐:直接采用机器的IP
  • -bind
    • 作用:指明节点的IP地址
    • 有时候不指定绑定IP,会报Failed to get advertise address: Multiple private IPs found. Please configure one. 的异常
  • -server
    • 作用:指定节点为server
    • 每个数据中心(DC)的server数推荐至少为1,至多为5
    • 所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性
    • server也是与其他DC交互的门面(gateway)
  • -client
    • 作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC
    • 默认是127.0.0.1,只允许回环接口访问
    • 若不指定为-server,其实就是-client
  • -join
    • 作用:将节点加入到集群
  • -datacenter(老版本叫-dc,-dc已经失效)
    • 作用:指定机器加入到哪一个数据中心中

安装

访问Consul 官网下载 Consul 的最新版本,根据不同的系统类型选择不同的安装包。

启动

consul agent -dev           # -dev表示开发模式运行,另外还有-server表示服务模式运行

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×