配置中心-Consul(一)

  Consul不仅可以当做注册中心,也提供了配置中心功能。关于注册中心可以参考:https://blog.csdn.net/weixin_45481406/article/details/123679767

  Consul作为注册中,其本身是可以存储服务相关配置,而不需要依赖Git、SVN、数据库等进行配合,并且不需要其他组件即可实现实时刷新。使用上相当的便捷,一个组件即可实现注册和配置,SpringCloud 官方也是很推荐这个组件。

Consul 介绍

  Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置,与其他分布式服务注册与发现方案相比较,Consul 方案更加 “一站式”,内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key/Value储存、多数据中心方案,不需要再依赖其他的工具,使用起来较为简单。
  Consul 是使用Go语言编写,因此具有天然可移植性,支持Linux、Windows、macOS,安装包仅包含一个可执行文件,方便部署,与Docker 等轻量级容器可实现无缝配合。

Consul 特性
  • Raft算法
  • 服务发现
  • 健康检查
  • Key/Value储存
  • 多数据中心
  • 支持http和dns协议接口
  • 官方提供web管理界面
Consul 的安装

  Consul是用Go语言编写的第三方工具,需要单独安装使用,下载地址:https://www.consul.io/downloads。Consul支持Windows、macOS、Linux,可以根据自己的需求进行下载使用。

  服务注册与发现-Consul(一)一文中已经描述了在Windows、Linux中安装单节点、集群,本文就直接使用在Windows中配置中心

# 开发模式启动consul
consul agent -dev -clien=0.0.0.0

  启动后可通过 http://localhost:8500/地址访问web端控制台界面。
在这里插入图片描述

初始化配置

1. 创建基本目录
  使用Consul作为配置中心,推荐通过子目录的形式来管理不同应用的配置文件
  点击 Key / Value,点击 Create
在这里插入图片描述
  通过Key / Value的形式储存配置文件的内容。注意:如果key是以 “/” 结尾的会创建一个目录
在这里插入图片描述
示例:
在这里插入图片描述

SpringBoot整合Consul配置中心

  接下来就使用SpringBoot进行整合
1. 导入jar包

<!--  consul注册中心 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!-- consul配置中心 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<!-- actuator 健康监控 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 如果是单独的SpringBoot项目,则需要导入下一个包 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

2. 编写配置
  在资源目录下创建名为 bootstarp 的配置文件,后缀名可以依照自己的喜欢选择properties或者yaml或yml,在项目启动时会优先加载bootstarp的配置,然后在是其他的。并在配置文件中配置注册中心、配置中心

server:
  port: 8081
spring:
  application:
    name: consul
  profiles:
    active: dev
  cloud:
    consul:
      host: 127.0.0.1  # consul 地址
      port: 8500   # consul 端口
      enabled: true # 开启consul
      # 服务提供者信息
      discovery:
        register: true # 开启注册
        instance-id: ${spring.application.name}-01  # 注册实例ID, 保证唯一
        service-name: ${spring.application.name} # 服务名称
        port: ${server.port} # 服务端口
        prefer-ip-address: true # 是否使用IP注册
        ip-address: ${spring.cloud.client.ip-address} # 服务请求IP
      config:
        enabled: true # 开启consul
        prefix: config  # 设置配置的基本文件夹,默认config
        default-context: consul # 设置应用的文件夹名称,默认值application
        profile-separator: '-' # 环境分隔符,默认","
        format: YAML  # 指定配置文件格式
        data-key: consul-demo # 对应的配置文件名
        watch:
          enabled: true # 开启自动刷新,默认true
          delay: 1000 # 刷新频率,毫秒  默认1000

3. 编写测试类
  注意:通过 @RefreshScope 注解可以开启本类实时刷新

@RestController
@RequestMapping("/consul")
@RefreshScope // 实时刷新
public class ConsulController {
    @Value("${name}")
    private String name;

    @GetMapping("/demo")
    public String consulDemo() {
        return name;
    }
}

在这里插入图片描述
源码地址:https://gitee.com/peachtec/hxz-study

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

華小灼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值