精华内容
下载资源
问答
  • 同一数据中心中的节点应同一个局域网内。 primary_datacenter: 这指定了对ACL信息具有权威性的数据中心。必须提供它才能启用ACL。 bootstrap_expect: Consul将等待指定数量的服务器可用,然后才会引导群集。这...
    • datacenter 此标志表示代理运行的数据中心。如果未提供,则默认为“dc1”。
      Consul拥有对多个数据中心的一流支持,但它依赖于正确的配置。同一数据中心中的节点应在同一个局域网内。

    • primary_datacenter: 这指定了对ACL信息具有权威性的数据中心。必须提供它才能启用ACL。

    • bootstrap_expect: Consul将等待指定数量的服务器可用,然后才会引导群集。这允许自动选择初始领导者。

    • start_join: 一个字符串数组,指定是其他的consul server agent的地址。这里这样配置,会在启动时,尝试将consul-server2,consul-server3这两个节点加进来,形成一个集群。

    • retry_join: 允许start_join时失败时,继续重新连接。重试的时间间隔,可以用retry_interval设置,默认是30s;重试的最大次数,可以用retry_max设置,默认是0,也就是无限次重试。关于retry_interval和retry_max,这里都是用的默认值。

    • bind_addr: 内部群集通信绑定的地址。这是群集中所有其他节点都应该可以访问的IP地址。默认情况下,这是“0.0.0.0”,这意味着Consul将绑定到本地计算机上的所有地址,并将第一个可用的私有IPv4地址通告给群集的其余部分。如果有多个私有IPv4地址可用,Consul将在启动时退出并显示错误。如果指定“[::]”,Consul将通告第一个可用的公共IPv6地址。如果有多个可用的公共IPv6地址,Consul将在启动时退出并显示错误。 Consul同时使用TCP和UDP,并且两者使用相同的端口。如果您有防火墙,请务必同时允许这两种协议。

    • advertise_addr: 更改我们向群集中其他节点通告的地址。默认情况下,会使用-bind参数指定的地址.

    • server: 是否是server agent节点。

    • connect.enabled: 是否启动Consul Connect,这里是启用的。

    • node_name:节点名称。

    • data_dir: agent存储状态的目录。

    • enable_script_checks: 是否在此代理上启用执行脚本的健康检查。有安全漏洞,默认值就是false,这里单独提示下。

    • enable_local_script_checks: 与enable_script_checks类似,但只有在本地配置文件中定义它们时才启用它们。仍然不允许在HTTP API注册中定义的脚本检查。

    • log-file: 将所有Consul Agent日志消息重定向到文件。这里指定的是/opt/consul/log/目录。

    • log_rotate_bytes:指定在需要轮换之前应写入日志的字节数。除非指定,否则可以写入日志文件的字节数没有限制

    • log_rotate_duration:指定在需要旋转日志之前应写入日志的最长持续时间。除非另有说明,否则日志会每天轮换(24小时。单位可以是"ns", “us” (or “µs”), “ms”, “s”, “m”, “h”, 比如设置值为24h

    • encrypt:用于加密Consul Gossip 协议交换的数据。在启动各个server之前,配置成同一个UUID值就行,或者你用命令行consul keygen 命令来生成也可以。

    • acl.enabled: 是否启用acl.

    • acl.default_policy: “allow”或“deny”; 默认为“allow”,但这将在未来的主要版本中更改。当没有匹配规则时,默认策略控制令牌的行为。在“allow”模式下,ACL是黑名单:允许任何未明确禁止的操作。在“deny”模式下,ACL是白名单:阻止任何未明确允许的操作.

    • acl.enable_token_persistence: 可能值为true或者false。值为true时,API使用的令牌集合将被保存到磁盘,并且当代理重新启动时会重新加载。

    • acl.tokens.master: 具有全局管理的权限,也就是最大的权限。它允许操作员使用众所周知的令牌密钥ID来引导ACL系统。需要在所有的server agent上设置同一个值,可以设置为一个随机的UUID。这个值权限最大,注意保管好。

    • acl.tokens.agent: 用于客户端和服务器执行内部操作.比如catalog api的更新,反熵同步等。

    • client_addr: Consul将绑定客户端接口的地址,包括HTTP和DNS服务器

    • ui: 启用内置Web UI服务器和对应所需的HTTP路由

    • ports.http: 更改默认的http端口。
      2.3.2. 生成两个token,让部门A,B各自管理自己的服务
      首先我们来生成部门A的policy, 意思度所有节点具有写权限(写权限包括读),并且只能写deptA开头的服务。

    2.3.2.1先生成部门A的token
    node_prefix “” {
    policy = “write”
    }

    service_prefix “deptA”{
    policy = “write”
    }
    下面是具体的生成过程
    1.新建policy并保存
    在这里插入图片描述

    2.生成token

    在这里插入图片描述

    在这里插入图片描述
    3.查看token列表,并点击deptA-policy那一项查看并复制token

    在这里插入图片描述
    在这里插入图片描述

    2.3.2. 2.在生成部门B的token
    只需要把policy稍作修改就可以,其他部门和部门A的类似,这里就不贴图了。

    node_prefix “” {
    policy = “write”
    }

    service_prefix “deptB”{
    policy = “write”
    }
    2.3.用不同的token来获取服务列表
    最后我们拿到部门A和部门B的token,以及master的token
    我这里deptA的token是:8764c083-0acb-e11e-433d-8d8803db9bd2
    deptB的token是: 052f467f-9581-cc7c-a8a5-84d8df51dc9d
    master token是: d76a0f7-5535-40cc-8696-073462acc6c7
    下面用postman测试一下,看看不同token返回的服务列表

    deptA-token
    http://127.0.0.1:7110/v1/agent/services?token=8764c083-0acb-e11e-433d-8d8803db9bd2
    在这里插入图片描述

    deptB-token
    http://127.0.0.1:7110/v1/agent/services?token=052f467f-9581-cc7c-a8a5-84d8df51dc9d

    在这里插入图片描述
    master-token
    http://127.0.0.1:7110/v1/agent/services?token=cd76a0f7-5535-40cc-8696-073462acc6c7

    在这里插入图片描述
    可以发现deptA-token只能看到部门A的服务,deptB-token只能看到部门B的服务,master-token可以看到所以的。
    另外取消注册,注册之类的验证大家可以自己试试,都与上面的方式差不多,只不过要使用不同的Http API

    展开全文
  • consul

    2020-10-23 20:46:04
    jar,外部,consul的yaml都有同一key,读取优先级从高到低【consul>外部> jar】 外部配置了同名yaml文件,那么jar中的同名yaml就会完全失效

    springcloud整合consul注意点

    1. 必须依赖有
     <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            </dependency>
            <!-- 必须有健康检查,因为consul就是通过该依赖提供的健康检查接口的返回值来判断服务是否可用的,没有改依赖,consul会认为服务挂掉了-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    

    如果需要将yaml配置托管到consul注册中心则可以在添加consul-config依赖

    1. bootstrap.yaml文件必有,配置如下:
    # 必须要有bootrap.yaml文件,否则consul客户端的连接地址的默认的127.0.0.1,即application.yaml中配置的consul的地址和端口不会生效
    spring:
      cloud:
        consul:
          host: 192.168.177.200
          port: 8500
    
    1. 如下配置项必须设为true,这样consul会使用ip:port访问服务,默认是false,即通过host:port访问,比如我电脑host是DESKTOP-MHA5LGK,那么最后就是DESKTOP-MHA5LGK:9006,但基本这种情况是调不通的
    spring.cloud.consul.prefer-ip-address=true
    

    shell脚本批量删除consul的无效/失效服务

    shell脚本批量删除consul的无效/失效服务

    spring.cloud.consul配置详解

    spring:
        cloud:
            consul:
    	        enabled: true //是否启用consul
                host: ip // consul server的ip地址
                port: 8500 // consul运行的端口号
                ribbon:
                    enabled: true //是否启用ribbon进行客户端负载均衡
                config:
                    enable: true
                discovery:
                    heartbeat: //配置是否进行health check,以及频率
                        enabled: true
                        ttlValue: 10
                    enable:true // 是否去发现其他服务
                    register:true //是否将自身服务注册到consul中
                    tags: tagName //为同名的服务打tag用于区分
                    default-query-tag: tagName
                    query-passing: true
                    preferIpAddress: true # 默认是false(比如我电脑的host是DESKTOP-MHA5LGK,那么consul记录的就是DESKTOP-MHA5LGK:9006,即会通过该方式访问
    

    query-passing:config client可以通过配置的url或者服务发现的方式拉取config server的配置。如果服务发现的方式来拉取配置,默认情况下ConsulDiscoveryClient获取服务的时候是根据服务id获取所有服务节点,如果获取了down的服务,则会造成拉取配置失败。ConsulDiscoveryProperties的默认设置queryPassing=false,即返回所有的服务,包括down掉的。通过配置改为true则可返回所有健康检查通过的服务。
    preferIpAddress:ConsulDiscoveryProperties这个类是consul服务发现的配置类。默认情况下preferIpAddress值为false,也就是通过host来进行服务地址的注册和检查(即DESKTOP-MHA5LGK:9006),但是当环境不支持host访问时就会出问题,所以需要配置preferIpAddress=true(为true那么访问方式就是192.168.43.38:9000)。

    consul界面的配置不生效

    我启动服务指定的是common配置文件,consul默认的是application环境,
    在这里插入图片描述
    其实等同于unfied-file-service,application所以这里面所有的配置只是替换了spring,

    没有替换spring-common,而spring-common里面是最高的。所以应该这样,unfied-file-service,common,那么consul的配置就会生效。其实配置不生效consul框架也没有打印日志吗

    consul命令行

    https://www.jianshu.com/p/339cd3d1d7c4
    列出所有的数据中心: ./consul catalog datacenters
    列出所有的节点:./consul catalog nodes
    列出所有的服务:./consul catalog services

    consul接口(curl请求的,linux命令行的)

    consul常用API接口

    get http://192.168.177.200:8500/v1/agent/services 返回所有服务的注册信息
    put http://192.168.177.200:8500/v1/agent/service/deregister/stock-service-9011 删除一个服务

    consul创建配置文件

    config/demo,local/data
    config/demo,test/data
    config–配置目录
    demo是项目注册名即spring.application.name
    local是profiles
    data是目录


    config:默认值,也可以通过如下配置

    ---
    spring:
      profiles: local
      cloud:
        consul:
          host: 127.0.0.1
          port: 8500
          discovery:
            healthCheckPath: /actuator/health
            prefer-ip-address: true
          config:
            fail-fast: false
            enabled: true
            format: YAML  # 默认值
            prefix: config  # 默认值
            defaultContext: application # 默认值
            profileSeparator: ','  # 默认值
            data-key: data  # 默认值
    

    consul配置中心

    参考链接

    1. jar,外部,consul的yaml都有同一key,读取优先级从高到低【consul>外部> jar】
    2. 外部配置了同名yaml文件,那么jar中的同名yaml就会完全失效
    3. key的优先级:jar>外部>consul

    jar ----consul

    外部—consul

    jar —外部

    展开全文
  • ConsulConsul实践指导-配置文件

    万次阅读 2016-08-18 18:36:34
    当加载配置选项时,consul是按照词典顺序从所有配置文件或目录中加载。比如,basic_config.json会先于extra_config.json处理。后面设定的配置选项会合并到前面的配置集合中,如果存在重复的配置选项则会覆盖。当然,...

    Agent有各种各样的配置选项,这些配置选项可以通过命令行参数的方式设定,也可用通过配置文件的方式设定——所有的配置选项都是可选的,当然也是有默认值的。

    当加载配置选项时,consul是按照词典顺序从所有配置文件或目录中加载。比如,basic_config.json会先于extra_config.json处理。后面设定的配置选项会合并到前面的配置集合中,如果存在重复的配置选项则会覆盖。当然,在某些情况下,比如事件处理程序,后面处理程序会追加到现有的配置选项中,形成事件处理程序列表。

    Consul支持重新加载配置(在收到SIGHUP信号时),但也不是所有的改变都可以重新加载,只有某些ReLoadable Configuration可以重新加载。也可用通过命令重新加载,后面会介绍。

    1.1.1 命令行参数

    如下都是可以在命令行指定的参数:

    Ø  -config-file

    需要加载的配置文件,在文件中都是json格式的信息,该参数可以多次配置,后面文件中加载的参数会覆盖前面加载文件中的参数。

    Ø  -config-dir

    需要加载的配置文件目录,consul将加载目录下所有后缀为“.json”的文件,加载顺序为字母顺序,文件中配置选项合并方式如config-file。该参数可以多次配置。目录中的子目录是不会加载的。

    Ø  -data-dir

    此目录是为Agent存放state数据的。是所有Agent需要的,该目录应该存放在持久存储中(reboot不会丢失),对于server角色的Agent是很关键的——需要记录集群状态。并且该目录是支持文件锁。

    Ø  -log-level

    日志级别。默认为info。有如下级别:"trace","debug", "info", "warn", and "err"。可以使用consul monitor来连接agent查看日志。日志级别可以在reload时进行改变。

    Ø  -syslog

    将日志记录进syslog(仅支持Linux和OSX平台)

    Ø  -pid-file

    记录pid的文件

    Ø  -server

    设置Agent是server模式还是client模式。Consul agent有两种运行模式:Server和Client。这里的Server和Client只是Consul集群层面的区分,与搭建在Cluster之上 的应用服务无关。Consule Server模式agent节点用于采用raft算法维护Consul集群的状态,官方建议每个Consul Cluster至少有3个或以上的运行在Server mode的Agent,Client节点不限。

    Ø  -client

    将绑定到client接口的地址,可以是HTTP、DNS、RPC服务器。默认为“127.0.0.1”——只允许回路连接。RPC地址会被其他的consul命令使用,比如consul members——查询agent列表

    Ø  -node

    节点在集群的名字,在集群中必须是唯一的。默认为节点的Hostname

    Ø  -bootstrap

    设置服务是否为“bootstrap”模式。如果数据中心只有1个server agent,那么需要设置该参数。从技术上来讲,处于bootstrap模式的服务器是可以选择自己作为Raft Leader的。在consul集群中,只有一个节点可以配置该参数,如果有多个参数配置该参数,那么难以保证一致性。

    Ø  -bootstrap-expect

    数据中心期望的server agent数目,不能与bootstrap一起使用。此参数要么不配置,要么consul集群中所有的server均配置相同的值。如果配置了该参数,只想当consul集群中有效server agent的数目达到此数量时才会引导集群启动。

    Ø  -dc

    数据中心的名字

    Ø  -bind

    用于集群内部通信的IP地址,与集群中其他节点互连可通。默认为“0.0.0.0”——consul将使用第一个有效的私有IPv4地址。如果指定“[::]”,consul将使用第一个有效的公共IPv6地址。使用TCP和UDP通信。注意防火墙,避免无法通信。

    ……

     

    1.1.2 配置文件

    除了命令行配置外,配置选项也可以存放在文件中。这种方式在某种情况下是非常方便的,比如,配置选项是由配置管理系统来管理。

    配置文件都是json格式的,是易读和易编辑的——在文件中,每一个json对象都是格式化的。

    配置文件不仅仅可以设置Agent,而且还能够提供Check和service定义。参见check配置和service配置。Check配置与service配置均是可通过reload更新的。

    1.1.2.1    示例

    配置文件示例

    {
      "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"
      }
    }

     

    配置文件示例(TLS)

    {
      "datacenter": "east-aws",
      "data_dir": "/opt/consul",
      "log_level": "INFO",
      "node_name": "foobar",
      "server": true,
      "addresses": {
        "https": "0.0.0.0"
      },
      "ports": {
        "https": 8080
      },
      "key_file": "/etc/pki/tls/private/my.key",
      "cert_file": "/etc/pki/tls/certs/my.crt",
      "ca_file": "/etc/pki/tls/certs/ca-bundle.crt"
    }

     

    1.1.2.2    参数说明

    Ø  datacenter

    同命令行参数-datacenter

    Ø  data_dir

    同命令行参数-data_dir

    Ø  bootstrap

    同命令行参数-bootstrap

    Ø  bootstrap_expect

    同命令行参数-bootstrap_expect

    Ø  bind_addr

    同命令行参数-bind

    Ø  enable_syslog

    同命令行参数-syslog

    Ø  log_level

    同命令行参数-log_level

    Ø  node_name

    同命令行参数node

    ……

     

    1.1.3 可重载配置

    Reload配置 并不能reload所有配置选项,下面的选项可以重载:

    Ø  Log level

    Ø  Checks

    Ø  Services

    Ø  Watches

    Ø  HTTP Client Address

    Ø  Atlas Token

    Ø  Atlas Infrastructure

    Ø  Atlas Endpoint

     

    原文地址:https://www.consul.io/docs/agent/options.html#configuration_files

    展开全文
  • Consul

    2020-01-06 11:02:42
    consul 简介 Consul是一个服务发现和注册的工具,其具有分布式、高扩展性能特点。 Consul主要包含如下功能: 服务发现: 支持 http 和 dns 两种协议的服务注册和发现方式。 监控检查: 支持多种方式的健康检查。 ...

    consul

    简介

    Consul是一个服务发现和注册的工具,其具有分布式、高扩展性能特点。
    在这里插入图片描述

    Consul主要包含如下功能:

    服务发现: 支持 http 和 dns 两种协议的服务注册和发现方式。
    监控检查: 支持多种方式的健康检查。
    Key/Value存储: 支持通过HTTP API实现分布式KV数据存储。
    多数据中心支持:支持任意数量数据中心。

    实验步骤

    先解压

    unzip consul_1.4.0_linux_amd64.zip -d /usr/bin
    

    查看版本

    consul -v 
    

    创建两个目录:
    存放consul持久化数据的目录:

    mkdir -p /opt/consul/data
    

    存放consul配置文件:

    mkdir -p /opt/consul/config
    

    以上步骤四台都是以一样的
    8500是consul的默认端口号

    下面每个主机写的要看清楚有所不同
    ClientA:

    consul agent -server -bootstrap-expect 2 -data-dir /opt/consul/data/ -config-dir /opt/consul/config/ -bind 192.168.43.57 -client 0.0.0.0 -enable-script-checks=true -node=consul1 -datacenter=kgc
    

    -server //表示一个服务端代理
    -bootstrap-expect 2 //表示数据中心期待的节点数量
    -data-dir //数据目录的位置
    -config-dir //配置文件目录
    -bind //当前这个bind绑定的ip地址
    -client //允许谁访问
    -enable-script-checks=true //启用心跳检查
    -node //当前节点的名字
    -datacenter=kgc

    ClientB:

    consul agent -server -node=consul2 -data-dir /opt/consul/data/ -config-dir /opt/consul/config/ -bind 192.168.43.3 -client 0.0.0.0 -enable-script-checks=true -datacenter=kgc -join 192.168.43.57
    

    ClientC:

    consul agent -server -node=consul3 -data-dir /opt/consul/data/ -config-dir /opt/consul/config/ -bind 192.168.43.254 -client 0.0.0.0 -enable-script-checks=true -datacenter=kgc -join 192.168.43.57
    

    ClientD:
    加了ui代表能打开图形界面

    consul agent -ui -node=client1 -data-dir /opt/consul/data/ -config-dir /opt/consul/config/ -bind 192.168.43.205 -client 0.0.0.0 -enable-script-checks=true -datacenter=kgc -join 192.168.43.57
    

    第四台打了ui所以能打开web界面
    在这里插入图片描述

    查看集群所有成员:
    consul members //在任意一台上面都可以

    在这里插入图片描述
    查看consul的详细信息:
    consul info
    查看consul的集群群主:

    curl http://127.0.0.1:8500/v1/status/leader
    

    查看consul的成员:

    curl http://127.0.0.1:8500/v1/status/peers
    

    查看注册到consul上的所有服务:

    curl http://127.0.0.1:8500/v1/catalog/services
    

    查看注册到consul上的服务的信息:

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

    查看consul集群节点的详细信息
    pretty 加?pretty是美化输出

    curl http://127.0.0.1:8500/v1/catalog/nodes?
    

    consul命令行中对键值对的操作(kv=key/value)
    1、创建或者更新键值对----->put

    consul kv put redis/config/connection  5   #有值是修改,没有是创建
    
                  键                  值
    

    2、获取键值–get

    consul kv get redis
    

    在这里插入图片描述
    3、查询详情–detailed

    consul kv get -detailed redis
    

    在这里插入图片描述
    4、删除一个键–delete

    consul kv delete  redis
    

    5、递归删除–recurse

    consul kv delete -recurse  redis/
    

    6、导出键值–export

     consul kv export redis/   #就相当于查看一样
    

    7、列出指定前缀的键–keys

    consul kv get -keys redis/
    

    在这里插入图片描述
    8、分隔符–separator —默认情况下是/

    consul kv get -keys -separator="" redis
    

    在这里插入图片描述
    9、列出所有的键

    consul kv get -keys -separator="" 
    

    在这里插入图片描述
    10、导入键值对(从.json文件中导入键值对)
    第一种:consul kv import @value.json
    第二种:cat @value.json | consul lv import -

    把第四台停掉

    rm -rf /opt/consul/data/*
    
    rm -rf /opt/consul/config/*
    

    四台都要清空

    其他两台清空之后然后在打命令
    把第三台和第四台都稍微的小改一下
    ClientC:

    consul agent  -node=client1 -ui  -data-dir /opt/consul/data/ -config-dir /opt/consul/config/ -bind 192.168.43.3 -client 0.0.0.0 -enable-script-checks=true -datacenter=kgc -join 192.168.43.57
    

    ClientD:

    consul agent -server -ui -node=consul3   -data-dir /opt/consul/data/ -config-dir /opt/consul/config/ -bind 192.168.43.205 -client 0.0.0.0 -enable-script-checks=true -datacenter=kgc -join 192.168.43.57
    

    在随便下载git
    然后把代码仓库文件复制到其他

    yum  -y install git 
    
    git clone http://github.com/luojunyong/spring-cloud-examples.git   #克隆代码仓库到本地
    
    scp -r spring-cloud-examples 192.168.43.3:/root/      #记得要加 -r 因为有目录
    
    scp -r spring-cloud-examples 192.168.43.205:/root/ 
    
    scp -r spring-cloud-examples 192.168.43.254:/root/ 
    
    consul结合nginx实现微服务动态联动

    只保留前面三台的consul,停掉两台生产者和消费者,第四台的consul
    将前面三台consul的/opt/consul/data 目录清空,重新启动

    第四台

    tar -zxvf consul-template_0.19.5_linux_amd64.tgz 
    
    mv consul-template /usr/bin
    
    mkdir -p /opt/consul/logs 
    
    mkdir -p /usr/local/nginx/conf/vhost
    
    vim /opt/consul/config/nginx-consul-web1.ctml
    
    upstream web1 {
            ip_hash;       //调度算法
    {{range service "service-producer"}} //抓取微服务的范围为名字中带有“service-producer”
            server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=30s;
            {{end}}
    }
     
    server {
            listen 80;
            server_name www.kgc.cn;
            location / {
              proxy_connect_timeout  300s;    //连接超时时间
              proxy_send_timeout     900s;    //发送超时时间
              proxy_read_timeout     900s;    //发送读取时间
              proxy_buffer_size       32k;     //代理缓冲区的大小
              proxy_buffers         4 32k;     //代理缓冲区的个数和单个的大小
              proxy_busy_buffers_size 64k;     // 代理缓冲区单个最大的大小
              proxy_redirect          off;     // 禁止该功能
              proxy_set_header Host $host;
              proxy_set_header Referer $http_referer;
              proxy_set_header X-Real-IP  $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_pass http://web1;
             }
    }
    

    proxy_redirect 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值

    在第一台

    cd /root/spring-cloud-examples/spring-cloud-consul/spring-cloud-consul-producer
    
    vim src/main/resources/application.properties
    

    在这里插入图片描述

    mvn  spring-boot:run
    
    spring.cloud.consul.discovery.preferIpAddress=true
    

    确保consul注册中心能够获取到生产者的IP地址

    第二台

    cd /root/spring-cloud-examples/spring-cloud-consul/spring-cloud-consul-producer-2
    
    vim src/main/resources/application.properties
    

    在这里插入图片描述

    第三台

    cd /root/spring-cloud-examples/spring-cloud-consul/spring-cloud-consul-consumer/
    
    vim src/main/resources/application.properties
    

    在这里插入图片描述

    访问第三台上的8500端口
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    第四台

    vim /usr/local/nginx/conf/nginx.conf
    

    在server部分前

    include /usr/local/nginx/conf/vhost/*.conf;
    
    consul-template --consul-addr 192.168.50.105:8500 -template /opt/consul/config/nginx-consul-web1.ctml:/usr/local/nginx/conf/vhost/web1.conf:"/usr/local/nginx/sbin/nginx -s reload" -dry
    

    -consul-addr 指定你当前的注册中心
    -template 指定你生产的配置文件是根据哪个模板生产
    -dry 仅运行此命令而不生成配置文件

    在这里插入图片描述

    nohup consul-template --consul-addr 192.168.50.105:8500 -template /opt/consul/config/nginx-consul-web1.ctml:/usr/local/nginx/conf/vhost/web1.conf:"/usr/local/nginx/sbin/nginx -s reload" --log-level=info > /opt/consul/logs/consul-template.log 2>&1 & 2>&1  #不管是正确输出还是错误输出都转化成标准输出
    

    生成的日志的级别为info
    在这里插入图片描述

    因为consul的配置文件里指定为ip_hash的调度算法,所以这里不再轮询

    在这里插入图片描述

    在第四台监控consul日志文件,并停止第一台或者第二台任意一个生产者

    tailf /opt/consul/logs/consul-template.log
    

    在这里插入图片描述
    再访问一次就可以看到
    在这里插入图片描述

    四台主机都是服务端
    在这里插入图片描述

    然后前三台安装maven
    然后

    yum -y install git 
    
    git clone https://github.com/luojunyong/spring-cloud-examples.git
    

    三台相同操作

    cd spring-cloud-examples/spring-cloud-consul/spring-cloud-consul-producer
    
    vim src/main/resources/application.properties
    

    在这里插入图片描述

    展开全文
  •  看着consul命令行参数是不是很烦,我们可以把这些参数集中配置文件中,通过指定配置文件目录来启动,例如: ./consul agent -config-dir /etc/consul.d/server  2 创建confd的TOML配置文件 ...
  • Confd+Consul 动态生成配置文件 作者:@skyflask 转载本文请注明出处:https://www.cnblogs.com/skyflask/archive/2004/01/13/11287435.html 目录 一、Consul安装和配置1、consul是什么?2、Consul基础架构3、...
  • consul-template配置文件

    2018-04-26 09:58:28
    翻译至:https://github.com/hashicorp/consul-templateConsul-Template配置文件是使用[HashiCorp Configuration Language (HCL)]编写的.这意味着```Consul Template是和JSON兼容的,查看更多信息请查看 [HCL 规范]...
  • Docker-compose-consul部署Ningx+Tomcat+ELK分析Nginx访问日志一、Docker-compose部署Tomcat1. 安装compose2. 编写Dockerfile文件3. 编写dockers-compose.yml文件4. 执行yml文件创建容器二、配置consul自动同步1. ...
  • docker consul

    2021-08-03 17:45:17
    docker consul一、服务注册与发现二、consul概述定义特性三、部署consul1.安装Consul2.查看集群信息3.通过httpd api获取集群信息四、安装...准备template nginx模板文件3.编译安装nginx4.启动template5
  • consul简介

    千次阅读 2018-10-12 21:54:42
    Consul 简介 Consul 的使用场景 Consul 的优势 Consul 的角色 consul cluster集群架构图 Consul常用命令 consul agent 命令的常用选项   Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一...
  • Consul文档

    千次阅读 2018-01-03 08:21:00
    一、安装 Consul Consul 的安装很简单,安装 Consul 有以下两种方式: - 使用预编译的二进制文件 - 使用源代码安装  下载一个预编译的二进制文件是最简单的,我们通过TLS和SHA256总和提供下载来验证二进制文件...
  • consul学习

    2021-04-20 20:48:31
    官方提供的图中SERVER是consul服务端高可用集群,CLIENT是consul客户端。 图中存在两个数据中心:DATACENTER1、DATACENTER2。每个数据中心有3-5台server(该数量使得故障转移和性能之间达到平衡)。 Consul利用...
  • Consul-Template是基于Consul的自动替换配置文件的应用,本文使用它来实现动态配置服务。在Consul-Template没出现之前,大家构建服务发现系统大多采用的是Zookeeper、Etcd+Confd这样类似的系统。Consul官方推出了...
  • ConsulCONSUL调研

    千次阅读 2016-08-18 18:31:53
    Consul是一个服务管理软件: 1. 支持多数据中心下,分布式高可用的,服务发现和配置共享。 2. consul支持健康检查,允许存储键值对。 3. 一致性协议采用 Raft 算法,用来保证服务的高可用。 4. 成员管理和消息广播 ...
  • Server配置Consul-Client配置Consul启动Unit配置(CentOS 7)Consul-Server配置Consul-Client配置Consul日志配置重定向到指定文件(不推荐)使用syslog保存日志使用自带-log-file选项保存日志(新版功能)Consul启动启动...
  • consulconsul来做什么安装consulconsul来做什么 consul是什么我没有发言权,网上有很多的理解和介绍的文章,如果英文好可以去consul官网看下。这里只介绍下打算用consul来做什么。 场景:假设我们有很多api服务...
  • Consul部署

    2021-03-29 16:23:12
    文章目录部署consul步骤 部署consul步骤 关闭防火墙 systemctl stop firewalld setenforce 0 mkdir consul cd consul #将consul.0.9.2_linux_amd64.zip上传到consul unzip consul_0.9.2_linux_amd64.zip # 解压 ...
  • Docker consul

    2021-08-08 22:40:00
    Docker consul 一、服务注册与发现二、consul概述定义特性 三、部署consul1.安装Consul2.查看集群信息3.... 四、安装registratorregistrator作用1.容器服务自动加入nginx...准备template nginx模板文件3.编译安装nginx..
  • Docker Consul

    2021-03-28 21:34:43
    Docker Consul一、Consul介绍1、关键功能2、特点二、Consul的基本概念1、Client2、Server3、Server-leader4、Agent三、Counsul的原理1、服务发现及注册2、服务调用3、Consul通信接口4、Consul端口说明四、配置Consul...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,455
精华内容 2,982
热门标签
关键字:

consul的日志文件在哪里