扫码订阅《 Go语言微服务理论课程》或入驻星球,即可阅读文章!

GOLANG ROADMAP · 知识星球

阅读模式

  • 沉浸
  • 自动
  • 日常
首页
Go路线图
  • 👶 初级要求:负责一个模块

    • 📗 薪资·10-15k 技能梳理
  • 🧑 中高级要求:负责一个方向

    • 📘 薪资·15-25k 技能梳理
  • 🧔 资深要求:负责一个领域

    • 📒 薪资·25-40k 技能梳理
  • 🧙 专家要求:负责多个领域

    • 📕 薪资·40k以上 技能梳理
Go学院
  • Go小课
  • Go小考
  • Go宝典
Go资源
  • 推荐资源

    • 优质课程
    • 推荐图书
    • 开源项目
  • 资源下载

    • 视频资源
    • 文档资源
    • 帮找资源
Go求职
  • 求职刷题

    • 企业题库
    • 面试宝典
    • 求职面经
  • 求职服务

    • 内推互助
    • 求职助力
    • 内推公司
推广返佣
  • 返佣排行
  • 返佣规则
  • 推广学院
更多
  • 用户中心

    • 我的信息
    • 我的消息
    • 我的返佣
author-avatar

GOLANG ROADMAP


首页
Go路线图
  • 👶 初级要求:负责一个模块

    • 📗 薪资·10-15k 技能梳理
  • 🧑 中高级要求:负责一个方向

    • 📘 薪资·15-25k 技能梳理
  • 🧔 资深要求:负责一个领域

    • 📒 薪资·25-40k 技能梳理
  • 🧙 专家要求:负责多个领域

    • 📕 薪资·40k以上 技能梳理
Go学院
  • Go小课
  • Go小考
  • Go宝典
Go资源
  • 推荐资源

    • 优质课程
    • 推荐图书
    • 开源项目
  • 资源下载

    • 视频资源
    • 文档资源
    • 帮找资源
Go求职
  • 求职刷题

    • 企业题库
    • 面试宝典
    • 求职面经
  • 求职服务

    • 内推互助
    • 求职助力
    • 内推公司
推广返佣
  • 返佣排行
  • 返佣规则
  • 推广学院
更多
  • 用户中心

    • 我的信息
    • 我的消息
    • 我的返佣
  • 《Go语言微服务理论课程》

    • 课程介绍
  • 微服务简介

  • Protobuf通信协议

  • 微服务管理

    • 第1节:服务发现
    • 第2节:分布式与单点故障
    • 第3节:Consul服务发现原理
    • 第4节:Consul启动
    • 第5节:服务注册与查询
    • 第6节:Docker安装及运行consul节点
    • 第7节:Docker搭建Consul集群
    • 第8节:微服务定义
    • 第9节:微服务理论实践课程回顾

扫码订阅《 Go语言微服务理论课程》或入驻星球,即可阅读文章!

第8节:微服务定义


GOLANG ROADMAP

# consul常用命令及选项

# 1、常用命令:command

consul命令的使用形式为:

consul command [option]
1
  • 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"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

上述的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

  • consul常用命令及选项
  • 1、常用命令:command
  • 2、常用选项:option
  • 微服务定义标准及选项