设为首页 加入收藏

TOP

注册中心/配置管理 —— SpringCloud Consul(一)
2023-08-26 21:10:56 】 浏览:49
Tags:管理 SpringCloud Consul

Consul 概述

Consul 是一个可以提供服务发现,健康检查,多数据中心,key/Value 存储的分布式服务框架,用于实现分布式系统的发现与配置。Cousul 使用 Go 语言实现,因此天然具有可移植性,安装包仅包含一个可执行文件,直接启动即可运行,方便部署


Consul 安装与启动

以 windows 为例,在官网下载 Consul:https://www.consul.io/

下载之后解压缩,进入目录运行 consul.exe 即可:.\consul.exe agent -dev

Consul 启动完成后,在浏览器中访问 http://ocalhost:8500/ 便可以看到 Consul 首页


Consul 服务注册与发现

创建 cousul-service 项目,引入依赖,其中 Spring Boot Actuator 是健康检查需要依赖的包,本项目基于 SpringBoot 2.3.1,SpringCloud Hoxton.SR12

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
</dependencies>

在 application.yml 配置文件中添加如下配置:

server:
  port: 8080

spring:
  application:
    name: consul-service
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        instance-id: ${spring.application.name}:${server.port}

在启动类上添加注解 @EnableDiscoveryClient

@EnableDiscoveryClient
@SpringBootApplication
public class ConsulProducerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsulProducerApplication.class, args);
    }
}

启动项目,查看 Consul Web 页面,即可看到服务注册成功


Consul 配置中心

参考上一节内容创建 cousul-config 项目,引入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
</dependencies>

在 bootstrap.yml 配置文件(注意必须使用 bootstrap)中添加如下配置:

server:
  port: 8080

spring:
  application:
    name: consul-service
  # profiles:
    # active: dev # 指定环境,默认加载 default 环境
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        instance-id: ${spring.application.name}:${server.port}
      config:
        enabled: true # false禁用Consul配置,默认为true
        format: yaml  # 表示consul上面文件的格式,有四种:YAML、PROPERTIES、KEY-VALUE、FILES
        prefix: config  # 可以理解为配置文件所在的最外层目录
        default-context: consul-service # 设置应用的文件夹名称
        data-key: consul-service-config # Consul的Key/Values中的Key,Value对应整个配置文件
        # 以上配置可以理解为:加载config/consul-service/文件夹下Key为consul-service-config的Value对应的配置信息
        # 配置环境分隔符,默认值 "," 和 default-context 配置项搭配
        # 例如应用 consul-service 分别有环境 default、dev、test、prod
        # 只需在 config 文件夹下创建 consul-service、consul-service-dev、consul-service-test、consul-service-prod 文件夹即可
        # profile-separator: '-'
        watch:
          enabled: true # 是否开启自动刷新,默认值true开启
          delay: 1000 # 刷新频率,单位毫秒,默认值1000

在启动类上添加注解 @Enabl

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Codespaces个性化后台服务器配置.. 下一篇微服务集成redis并通过redis实现..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目