zoukankan      html  css  js  c++  java
  • Spring Cloud配置中心客户端读取配置

    微服务连接配置中心来实现外部配置的读取。

    引入依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>
    </dependencies>

    spring-cloud-starter-config:配置中心客户端的依赖。

    spring-boot-starter-aop,spring-retry:这两个是连接配置中心快速失败和重试需要用到的依赖。

    增加启动类

    @EnableDiscoveryClient
    @SpringBootApplication
    public class ServiceApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ServiceApplication.class, args);
        }
    
    }

    添加配置

    bootstrap.yml中添加如下配置,必须是bootstrap,application中不行。

    spring: 
      application: 
        name: config-client
      cloud:
        config:
          #username: 
          #password: 
          name: ${git.application}
          profile: ${git.profile}
          label: ${git.label}
          fail-fast: true
          retry:
            initial-interval: 2000
            max-attempts: 5
          discovery: 
            enabled: true
            service-id: config-center 
    
    eureka:
      client: 
        serviceUrl:
          defaultZone: ${register-center.urls}

    可以看出配置比较简单,下面也不再详述。

    application.yml配置文件参考如下:

    spring: 
      profiles: 
        active: config-client1
    
    eureka:
      instance:
        prefer-ip-address: true  
        instance-id: ${spring.cloud.client.ipAddress}:${server.port}
        lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds}
        lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds}
    
    ---
    spring: 
      profiles: config-client1
    
    server: 
      port: ${config-client1.server.port}
    
    ---
    spring: 
      profiles: config-client2
    
    server: 
      port: ${config-client2.server.port}

    Maven filter配置

    ... 
    
    #git
    git.application=application
    git.profile=dev
    git.label=master
    
    ...

    读取配置

    @RestController
    public class TestController {
    
        @Value("${username}")
        private String username;
    
    ...

    使用Value就能读取配置中心的配置,当然也可以通过其他方式获取SpringCloud中的配置,参考之前SpringBoot系列文章。

    启动服务

    通过指定Profile启动两台微服务,它们可以读取配置中心的内容。

    spring-boot:run -Drun.profiles=config-client1 -P dev
    spring-boot:run -Drun.profiles=config-client2 -P dev

    推荐阅读

    干货:免费领取2TB架构师四阶段视频教程

    面经:史上最全Java多线程面试题及答案

    工具:推荐一款在线创作流程图、思维导图软件

    分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

  • 相关阅读:
    WPF学员管理系统
    dotnet-千星项目OpenAuthNet基于NetCore21的快速开发框架
    MVC5仓库管理系统
    华为设备IPC V200R002C0SPC SDK连接demo
    基础界面
    交通建设项目管理信息化系统
    Apache常见interview
    mamcached+(magent+keepalived高可用)搭建及理论概述
    TCP/IP三次挥手,四次断开(精简)
    简述FTP的主动模式与被动模式(精简)
  • 原文地址:https://www.cnblogs.com/java-stack/p/11952598.html
Copyright © 2011-2022 走看看