SpringCloud-ServerConfig 配置中心服务端 / 客户端

ServerConfig

SpringCloud 组件,ServerConfig 是配置服务中心,组件,用于统一管理项目配置

原理

读取配置文件内容到服务中心

通过启动一个springboot服务(server-config),配置好git仓库地址(也可以svn或者其他),通过配置好的文件地址,访问配置文件,将配置读取到服务中心,并且文件内容修改后,可以实时刷新。

客户端到配置中心读配置内容

其他微服务访问配置不需要访问git,只需要通过访问ServerConfig读取配置,能到达统一配置的目的。

搭建

前提概要,本搭建使用ide:Spring Tool Suite 4

Version: 4.3.0.RELEASE
Build Id: 201906200901

安装好maven 3.6.3,并配置好网络通畅的maven仓库地址,有些国外仓库地址可能网速不好,下载依赖慢。

国内镜像仓库反而更快 https://www.cnblogs.com/Narule/p/12595960.html

Server

file -> new -> Spring Starter Project
SpringCloud-ServerConfig 配置中心服务端 / 客户端_第1张图片

pom依赖



	4.0.0
	
		org.springframework.boot
		spring-boot-starter-parent
		2.2.5.RELEASE
		 
	
	com.wunanyu
	Config
	0.0.1-SNAPSHOT
	Config
	Demo project for Spring Boot

	
		1.8
		Hoxton.SR3
	

	
		
			org.springframework.cloud
			spring-cloud-config-server
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
			
				
					org.junit.vintage
					junit-vintage-engine
				
			
		
	

	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				${spring-cloud.version}
				pom
				import
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	



配置文件

application.yml

server:
  port: 8888  #	服务端口号
spring:
  application:
    name: server-config  #服务名
  cloud:
    config:
      server:
        git:
          uri: /usr/data/git/cloud/config  #linux配置文件地址
          # 这里可以配置文件路径,也可以配置服务器路径,windows需要添加//  
          # 如uri: file://${user.home}/config-repo
          # github  uri:https://github.com/repo

#
#logging:
#config: src/main/resources/logback-spring.xml
log:
  path: log  #日志路径

更详细可以见https://www.cnblogs.com/hellxz/p/9306507.html

logback-spring.xml

日志打印的配置文件已经配置好,可以直接用,这里不介绍logback细节,不是本次重点




	
	
	
 	
	
		
		
		
		
		
	
	
	
	
		
		
			
			INFO
		
		
		
			${LOG_PATTERN}
			
		
	

	
	
	
		${log.path}/${app}-all.log
		
		
			INFO
		
		
			${log.path}/all/${app}-all-logging-%d{yyyy-MM-dd}.log
			
			
			
			30
			
			1GB
		
		
			${LOG_PATTERN}
		
	

	
	
		${log.path}/${app}-info.log
		
		
			INFO
			
			ACCEPT
			
			DENY
		
		
			${log.path}/info/${app}-info-logging-%d{yyyy-MM-dd}.log
			
			
			30
			
			1GB
		
		
			${LOG_PATTERN}
		
	

	
	
		${log.path}/${app}-warn.log
		
		
			WARN
			
			ACCEPT
			
			DENY
		
		
			${log.path}/warn/${app}-warn-logging-%d{yyyy-MM-dd}.log
			
			
			30
			
			1GB
		
		
		
			${LOG_PATTERN}
		
	

	
	
		${log.path}/${app}-error.log
		
		
		
			Error
		
		
			${log.path}/error/${app}-error-logging-%d{yyyy-MM-dd}.log
			
			
			30
			
			1GB
		
		
			${LOG_PATTERN}
		
	






	
	
		
		
		
		
		
		
		
	

	
	
	
	


	

	


启动类

package com.wunanyu.cloud.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication  //springboot启动类注解
@EnableConfigServer  //SpringCloud-ServerConfig配置中心服务注解,表示这是配置服务中心
/**
 * @author Narule
 */
public class ConfigApplication {

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

启动这个类的main方法,看控制台console的打印日志是否启动成功,启动成功,则可以通过

localhost:8888/eureka-dev.yml 查看配置信息,只要配置地址有这个文件

configserver 配置文件规则

/ { 应用名 } / { 环境名 } [ / { 分支名 } ]
/ { 应用名 } - { 环境名 }.yml
/ { 应用名 } - { 环境名 }.properties
/ { 分支名 } / { 应用名 } - { 环境名 }.yml
/ { 分支名 } / { 应用名 } - { 环境名 }.properties

client 读取配置

如果一个springboot服务叫eureka,eureka配置如下

bootstrap.yml

spring:
  application:
    name: eureka #应用名
  cloud:
    config:
     uri: localhost:8888 #配置中心的访问地址 这不是配置文件的地址,是配置服务server-config的地址
     profile: dev #环境
     label: master #分支
management:
  endpoints:
    web:
      exposure:
        include:
        - "*"
        
eureka:
  server:
    renewal-percent-threshold: 0.45
    
log:
  path: log

那么他会读取的文件名称为eureka-dev.yml, git分支为master的文件(默认)

Client

Client 其实只是在pom中添加 config依赖

org.springframework.cloud spring-cloud-starter-config

并且在bootstrap.yml 中配置server-config服务的url地址,Client就能自己读取到配置中心服务的数据

pom依赖



	4.0.0
	
		org.springframework.boot
		spring-boot-starter-parent
		2.2.5.RELEASE
		 
	
	com.wunanyu
	Eureka
	0.0.1-SNAPSHOT
	Eureka
	Demo project for Spring Boot

	
		1.8
		Hoxton.SR3
	

	

		
			org.springframework.boot
			spring-boot-starter-test
			test
			
				
					org.junit.vintage
					junit-vintage-engine
				
			
		
		
			org.springframework.cloud
			spring-cloud-starter-config
		
		
        
            org.springframework.boot
            spring-boot-starter-actuator
        
		
	

	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				${spring-cloud.version}
				pom
				import
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	



配置文件

bootstrap.yml

spring:
  application:
    name: eureka
  cloud:
    config:
     uri: http://192.168.50.135:8888
     profile: dev
     label: master
management:
  endpoints:
    web:
      exposure:
        include:
        - "*"
        
eureka:
  server:
    renewal-percent-threshold: 0.45
    
log:
  path: log

logback-spring.xml




	
	
	
 	
	
		
		
		
		
		
	
	
	
	
		
		
			
			INFO
		
		
		
			${LOG_PATTERN}
			
		
	

	
	
	
		${log.path}/${app}-all.log
		
		
			INFO
		
		
			${log.path}/all/${app}-all-logging-%d{yyyy-MM-dd}.log
			
			
			
			30
			
			1GB
		
		
			${LOG_PATTERN}
		
	

	
	
		${log.path}/${app}-info.log
		
		
			INFO
			
			ACCEPT
			
			DENY
		
		
			${log.path}/info/${app}-info-logging-%d{yyyy-MM-dd}.log
			
			
			30
			
			1GB
		
		
			${LOG_PATTERN}
		
	

	
	
		${log.path}/${app}-warn.log
		
		
			WARN
			
			ACCEPT
			
			DENY
		
		
			${log.path}/warn/${app}-warn-logging-%d{yyyy-MM-dd}.log
			
			
			30
			
			1GB
		
		
		
			${LOG_PATTERN}
		
	

	
	
		${log.path}/${app}-error.log
		
		
		
			Error
		
		
			${log.path}/error/${app}-error-logging-%d{yyyy-MM-dd}.log
			
			
			30
			
			1GB
		
		
			${LOG_PATTERN}
		
	






	
	
		
		
		
		
		
		
		
	

	
	
	
	


	

	


启动类

package com.wunanyu.cloud.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EurekaApplication {

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

}

你可能感兴趣的:(SpringCloud-ServerConfig 配置中心服务端 / 客户端)