微服务学习笔记九 Spring Cloud Config本地配置中心

简介: 微服务学习笔记九 Spring Cloud Config本地配置中心

Spring Cloud Config,通过服务端可以为多个客户端提供配置服务。

Spring Cloud Config可以将配置文件存储在本地,也可以将存储文件存储到远程

Git仓库。

创建Config Serve,通过它管理所有的配置文件。



**本地文件系统**

nativeconfigserver -> application  声明这是存放本地配置文件系统的模块,

具体的存放文件为:nativeconfigserver->configclient-dev.yml。

nativeconfigclient->bootstrap.yml获取configclient-dev.yml中的配置信息

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152444798.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152459218.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)

创建maven工程,pom.xml


```yaml

<dependencies>

   <dependency>

       <groupId>org.springframework.cloud</groupId>

       <artifactId>spring-cloud-config-server</artifactId>

       <version>2.0.2.RELEASE</version>

   </dependency>

</dependencies>

```


创建application.yml


```yaml

server:

 port: 8762

spring:

 application:

   name: nativeconfigserver

 profiles:

   active: native

 cloud:

   config:

     server:

       native:

         search-locations: classpath:/shared

```


注解说明:

profiles.active:表示的是文件的获取方式

cloud.config.server.native.search-location:本地配置文件存放的路径


resources路径下创建shared文件夹,并在此路径下创建configclient-dev.yml。


```yaml

server:

 port: 8070

foo: foo version 1

```


创建启动类


```java

package com.shuang;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.config.server.EnableConfigServer;


@SpringBootApplication

@EnableConfigServer

public class NativeConfigServerApplication {

   public static void main(String[] args) {

       SpringApplication.run(NativeConfigServerApplication.class,args);

   }

}

```


注解说明:

@EnableConfigServer:声明配置中心

创建客户端,来读取本地配置中心的配置文件

创建maven工程,pom.xml


```yaml

<dependencies>

   <dependency>

       <groupId>org.springframework.cloud</groupId>

       <artifactId>spring-cloud-starter-config</artifactId>

       <version>2.0.2.RELEASE</version>

   </dependency>

</dependencies>

```


创建 bootstrap.yml,配置读取本地配置中心的相关信息。


```yaml

spring:

 application:

   name: configclient

 profiles:

   active: dev

 cloud:

   config:

     uri: http://localhost:8762

     fail-fast: true

```


注解说明;

cloud.config.uri:本地Config Server 的访问路径

cloud.config.fail-fast:设置客户端的优先判断Config Server获取是否正常。

通过 spring.application.name 结合 spring.profiles.active拼接目标配置

文件名,configclient-dev.yml,去Config Server 中查找该文件


创建客户端的启动类:


```java

package com.shuang;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication

public class NativeConfigClientApplication {

   public static void main(String[] args) {

       SpringApplication.run(NativeConfigClientApplication.class,args);

     

   }

}

```


Handler


```java

package com.shuang.controller;


import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;


@RestController

@RequestMapping ("/native")

public class NativeConfigHandler {


   @Value("${server.port}")

   private String port;


   @Value("${foo}")

   private String foo;


   @GetMapping("/index")

   public String index(){

       return this.port+"-"+this.foo;

   }

}

```

依次启动:

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152705432.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152732747.png)

configclient通过读取configserver的文件,得知端口号为:8070

目录
相关文章
|
2月前
|
算法 Java 微服务
【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
微服务架构是What?? 微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。 每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建
500 126
|
2月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
297 0
|
2月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
3月前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
237 1
|
3月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
495 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
Java 开发工具 git
微服务SpringCloud之Spring Cloud Config配置中心Git
微服务SpringCloud之Spring Cloud Config配置中心Git 微服务以单个接口为颗粒度,一个接口可能就是一个项目,如果每个项目都包含一个配置文件,一个系统可能有几十或上百个小项目组成,那配置文件也会有好多,对后续修改维护也是比较麻烦,就和前面的服务注册一样,服务注册与发现是将服务从分散到中心化,而今天的配置中心是将配置文件从分散到中心化,这样便于后续维护。
1487 0
|
5月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
969 0
|
6月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
724 0
|
2月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
340 3
|
2月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
890 2

热门文章

最新文章