第008节:微服务定义

consul常用命令及选项

1、常用命令:command

consul命令的使用形式为:

consul command [option]
  • agent:consul的节点分为client和server两类,这两类节点统称为agent节点。
  • join:该命令的作用是将agent加入到consul的集群当中。当新启动一个agent节点后,往往需要指定节点需要加入到特定的consul集群中,此时使用join命令进行指定。
  • members:列出consul集群中的所有的成员节点信息,包括ip,端口,状态,类型等信息。
2、常用选项:option

除command命令外,还有option选项供开发者使用,常见的和常使用的option有:

  • -data-dir:该选项用于指定agent储存状态的数据目录,这是所有agent都必须的,对于server尤其重要,因为他们必须持久化集群的状态。
  • -config-dir:该选项用于指定service的配置文件和检查定义所在的位置。通常会指定为"某一个路径/consul.d"(通常情况下,.d表示一系列配置文件存放的目录)
  • -config-file:指定一个要装载的配置文件。该选项可以配置多次,进而配置多个配置文件。
  • -dev:该选项用于创建一个开发环境下的server节点,该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘。dev模式仅仅是在开发和测试环境中使用,不能用于生产环境。
  • -bootstrap-expect:该选项用于通知consul server类型节点,指定集群的server节点个数,该参数是为了延迟选举启动,直到全部的节点启动完毕以后再进行启动。
  • -node:该node选项用于指定节点在集群中的名称,该名称在集群中需要是唯一的,推荐直接使用机器的IP。
  • -bind:该选项用于指定节点所在的IP地址。
  • -server:该选项用于指明consul节点类型为server类型。每个数据中心(DC)的server数量推荐3到5个。所有的server节点加入到集群后要经过选举,采用raft一致性算法来确保数据操作的一致性。
  • -client:该参数用于指定consul界定为client节点类型。
  • -join:英文为加入的意思,join选项用于指定要将节点添加到具体哪个集群中。
  • -dc:dc是datacenter的简称,该选项用于指定节点加入的dc实例。

微服务定义标准及选项

除了命令行选项,微服务的定义和配置也可以放入文件中。在某些情况下,这可能更容易,比如当使用配置管理系统配置时。配置文件是JSON格式的,使得它们易于被人和计算机读取和编辑。配置被格式化为单个JSON对象,其中包含配置。

配置文件不仅用于设置代理,还用于提供检查和服务定义。这些配置文件同样可以被其他软件和功能所识别。它们分别记录在检查配置和服务配置下。服务和检查定义支持在重新加载期间更新。

例如,如下的JSON格式配置文件:

{
  "datacenter": "east-aws",
  "data_dir": "/opt/consul",
  "log_level": "INFO",
  "node_name": "foobar",
  "server": true,
  "watches": [
    {
        "type": "checks",
        "handler": "/usr/bin/health-check-handler.sh"
    }
  ],
  "telemetry": {
     "statsite_address": "127.0.0.1:2180"
  }
}

上述的json文件格式是一个案例,consul的json文件配置可选项有很多,比如:

  • addresses:该配置选项用于设置绑定地址。在Consul 1.0和更高版本中,可以将这些设置为要绑定到的地址列表。支持绑定设置多种类型的地址,包括:dns、http、https、grpc等共四种类型。
  • bootstrap:该配置相当于在命令行中添加了-bootstrap命令行标志。
  • bootstrap_expect:该配置相当于在命令行中添加了-bootstrap_expect命令行标志。
  • bind_addr:该配置相当于在命令行中添加-bind指令操作。
  • ca_file:该配置用于指定ca证书文件的目录。
  • ca_path:该配置用于指定ca证书的整体目录。
  • client_addr:该配置与命令行中-client指令功能相同。
  • config_entries:在该配置项下,通过配置二级配置项来进行,二级配置项可以配置bootstrap选项。
  • connect:关于连接的一些配置项通过该配置进行设置,同样是通过二级配置项来完成,可支持的二级配置项有:enabled、ca_provider、ca_config。
  • datacenter:该配置项与命令行中-datacenter指令作用相同。
  • data_dir:该配置项与命令行中-data-dir指令作用相同,用于指定微服务json定义文件所在的目录。
  • dns_config:该选项用于配置dns相关参数。
  • domain:该配置项与命令行中的-domain指令作用相同。
  • node_id:该配置项与命令行中的-node-id指令作用相同,用于自定义设定node-id。
  • node_name:该配置项与命令行中的-node指令作用相同,用于为node指定名称。
  • ports:该配置项用于配置节点的端口号,通过二级配置选项可以配置:dns、http、https、grpc、serf_lan、serf_wan、server等不同类型的端口。
  • protocol:该配置选项与命令行中的-protocol指令功能相同。

如上,只是列出了部分json配置文件的配置项,全部的配置选项在consul的官方网站有相关的说明,可以访问如下链接进行查看:https://www.consul.io/docs/agent/options.html

原创文章,Golang中国出品,文章对应源码下载:https://www.qfgolang.com/?page_id=1973

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

学习交流群:点击这里给我发消息

QR code