服务注册中心Consul安装与配置(windows)

Consul和Eureka都是基于CP(网上很多错误的将Consul说成CA),且Consul还支持key-value存储可作为分布式配置中心,目前Eureka2.x停止维护,故博主决定采用Consul作为项目的服务注册中心

1. Consul安装

官方下载地址:https://www.consul.io/downloads.html
百度网盘地址:https://pan.baidu.com/s/1lJ45QXentPwn_qSXOhBpiw 提取码:pvxd

下载zip文件解压后得到consul.exe的文件

最后我们启用cmd命令窗口,定位到consul.exe所在路径,以开发方式进行启动(如需外网访问ip配成外网ip即可):
start [服务名] consul agent -dev -client [本地ip] -ui

之后就可以通过我们刚刚启动设置的ip进行访问(端口默认为8500)

2. 项目配置

接下来进行我们项目的配置,在项目resources目录下新建bootstrap.yml文件,配置好后我们就可以将Consul当服务注册中心使用了

spring:
  application:
    # 应用名称
    name: blog-user
  # 引用环境配置,多个间用逗号分隔
  profiles:
    active: dev
  cloud:
    consul:
      host: 192.168.28.254
      port: 8500
      # 服务注册&发现
      discovery:
        # 服务发现是否开启(默认true)
        enabled: true
        # 服务注册是否开启(默认true)
        register: true
        # 实例ID唯 一
        instance-id: ${spring.application.name}:${server.port:8080}:${random.value}
        # 指定服务的名称
        service-name: ${spring.application.name}
        #  在注册时使用IP
        prefer-ip-address: true
        # HTTP健康检查(默认10秒)
        health-check-interval: 5s
        # 超过N秒健康检查不过,从consul中删除
        health-check-critical-timeout: 5s
        # 只查询有效的记录
        query-passing: true
      # 分布式配置中心
      config:
        # 指定consul配置的文件夹前缀
        prefix: config
        # 指定consul配置的配置文件名
        data-key: data
        # 指定consul配置的配置文件格式
        format: YAML
        # 配置文件父路径,所有项目共用的配置 ${..config.prefix}/${..config.default-context}/${..config.data-key}
        default-context: blog
        # 快速失败,false:将导致配置模块记录一个警告而不是抛出异常;这将允许应用程序继续正常启动
        fail-fast: true
        #healthCheckPath: /health

Consul还可以作为项目的分布式配置中心,在上面的bootstrap.yml中我们配置了以下四个参数:
应用名称(spring.application.name):blog-user,
环境配置(spring.application.profiles.active):dev,
配置的文件夹前缀(spring.cloud.consul.config.prefix):config,
配置文件名(spring.cloud.consul.config.data-key):data
此时我们对应的Consul上的配置文件路径则为:/config/blog-user,dev/data。点击Cousul的Key/Value菜单,添加此路径配置,SpringBoot的application.xml中的配置可以放到此路径中,此时我们用Consul作为分布式配置中心也完成了。
在这里插入图片描述

项目源码地址:https://github.com/luckymeet/spring-cloud-seed

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐