首页 > 其他分享 >SpringCloud分布式配置中心的搭建

SpringCloud分布式配置中心的搭建

时间:2023-01-02 15:00:45浏览次数:40  
标签:SpringCloud springframework application spring org 分布式 config cloud 搭建

1.配置中心服务端的搭建

  1. 创建模块cloud-config-center3344
  2. 添加坐标
<!--这是分布式的配置中心-->
<dependencies>
<!--需要引入配置中心的坐标-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!--引入eureka的客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

</dependencies>
  1. 编写application.yml
server:
port: 3344
spring:
application:
name: config-center
cloud:
config:
server:
git:
uri: 你的github地址
search-paths:
- springcloud-config
skip-ssl-validation: true
label: master
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
instance:
prefer-ip-address: true
instance-id: config-center
  1. 编写启动类
@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class ConfigCenterMain3344 {
public static void main(String[] args) {
SpringApplication.run(ConfigCenterMain3344.class,args) ;
}
}
  1. 测试
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

2.配置中心客户端的搭建

  1. 创建模块cloud-config-client-3355
  2. 引入坐标
<dependencies>
<!--导入spring-boot的web模块的支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--导入spring-boot的测试模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--引入eureka的客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--客户端的配置信息-->
<!--读取bootstrap配置文件-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
  1. 编写bootstrap.yml配置文件
server:
port: 3355
spring:
application:
name: config-client
cloud:
config:
uri: http://config-3344.com:3344
label: master
profile: dev
name: config
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
instance:
prefer-ip-address: true
instance-id: config-client3355
management:
endpoints:
web:
exposure:
include: "*" # 暴露当前端口共别人调用
  1. 编写controller
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${config.info}")
private String configInfo ;

@RequestMapping("/configInfo")
public String getConfigInfo() {
return configInfo ;
}
}
  1. 编写主配置类
@SpringBootApplication
@EnableEurekaClient
public class ConfigClientMain3355 {
public static void main(String[] args) {
SpringApplication.run(ConfigClientMain3355.class,args) ;
}
}
  1. 测试

3.手动刷新

问题描述:当手动修改了github上面的配置文件之后,发现服务端,可以感知到配置的变化,客户端不能实现动态的刷新的问题?

客户端解决方案如下:

  1. 添加坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 修改bootstrap的配置,添加暴露端口
management:
endpoints:
web:
exposure:
include: "*" # 暴露当前端口共别人调用
  1. 在控制器上面添加@RefreshScope
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${config.info}")
private String configInfo ;

@RequestMapping("/configInfo")
public String getConfigInfo() {
return configInfo ;
}
}
  1. 最后手动的发送一个post请求

curl -X POST "http://localhost:3355/actuator/refresh"

  1. 测试


标签:SpringCloud,springframework,application,spring,org,分布式,config,cloud,搭建
From: https://blog.51cto.com/u_14613614/5983721

相关文章

  • 分布式 id 生成器(雪花算法)
    分布式id生成器(雪花算法)有时我们需要能够生成类似MySQL自增ID这样不断增大,同时又不会重复的id。以支持业务中的高并发场景。比较典型的,电商促销时,短时间内会有大量的订......
  • FTP服务器是什么意思?FTP服务器怎么搭建?
    FTP服务器是什么意思?FTP服务器(FileTransferProtocolServer)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务,FTP是FileTransferProtocol(文件传输协......
  • Potree 002 Desktop开发环境搭建
    1、工程创建我们使用VisualStudio2022开发,把下载好后的PotreeDesktop源码添加到VisualStudio中。打开VisualStudio2022,新建Asp.NetCore空项目,如下图所示。点击下......
  • CentOS7 搭建k8s环境教程
    一.为什么是k8sv1.16.0?最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadminit那一步执行后,报了很多错,如:nodexxxnotfound等。centos7都重装了几次,还是无法解决。用......
  • 分布式测试工具的调研对比
    1.背景当自动化用例累积的越来越多,回归自动化用例的时间越来越长。我们往往会选择使用多线程的方式来跑用例集,但是用例数量达到一定数量级(千级以上)后,在单台机器上使用多线程......
  • Appium环境搭建(windows\Mac)
    百度网盘下载环境所需的文件:链接:https://pan.baidu.com/s/1YaWTb4KHfsKqHulp1-ZEbw提取码:qwe1一、windows版本Appium环境搭建安装nodejs下载.msi文件:https://node......
  • Zookeeper---分布式基础
    1.whyzookeeper现在各个服务大部分都是集群。多个节点一起工作。就是传说中的分布式。多个节点工作肯定不会个一个节点工作一模一样。需要来进行数据的同步等。高并发,就......
  • Docker操作逻辑及搭建web
    Docker操作逻辑当我们使用pull从docker仓库中将镜像下载到本地,也就是可以通过dockerimages查看到pull到的镜像,下载后,可以通过dockerrun将镜像启动运行在容器(Contaier)中......
  • 12、网关SpringCloud-Gateway
    网关作为流量的入口,常用功能包括路由转发、权限校验、限流控制等。而springcloudgateway作为SpringCloud官方推出的第二代网关框架,取代了Zuul网关。网关提供API......
  • 【SpringCloud】SpringCloud简介
    SpringCloud简介​​1.认识微服务​​​​1.0.学习目标​​​​1.1.单体架构​​​​1.2.分布式架构​​​​1.3.微服务​​​​1.4.SpringCloud​​​​1.5.总结​​​​2.......