一、configServer(3344)
1、pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--该模块的父工程的gav坐标-->
<parent>
<artifactId>springcloud</artifactId>
<groupId>com.springcloud</groupId>
<version>1.0.0</version>
</parent>
<!--该模块的版本号-->
<modelVersion>4.0.0</modelVersion>
<!--该模块的名称-->
<artifactId>config-center3344</artifactId>
<dependencies>
<!--必须添加的依赖(与spring-cloud-starter-bus-amqp一起添加使用,否则运行时会报ClassNotFound的错误)-->
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-amqp</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
<!--消息总线RabbitMQ的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<!--springcloud框架对config-server的整合-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!--springcloud框架对netflix的eureka-server的整合-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--springboot框架web项目起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springboot框架actuator项目起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--springboot框架对devtools的整合-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--javabean自动生成依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--工程重构依赖-->
<dependency>
<groupId>com.springcloud</groupId>
<artifactId>api-commons</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
2、主配置文件
#指定微服务的端口号
server:
port: 3344
#指定微服务的名称
spring:
application:
name: config-center
cloud:
config:
server:
git:
#指定github的访问路径
uri: https://github.com/duchaostart/test.git
#指定在github的仓库搜索路径
search-paths:
- test
force-pull: true
#指定github的用户名
username: duchaostart
#指定github指定用户的密码
password: dc19980328
#读取github的分支
label: master
#rabbitmq的相关配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
#该微服务注册进eureka服务注册中心
register-with-eureka: true
#允许该微服务搜索其它注册进eureka的微服务
fetch-registry: true
#指定eureka注册中心的访问路径
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
#rabbitmq的相关配置,暴露bus刷新配置端点
management:
endpoints: #暴露bus刷新配置的端点
web:
exposure:
include: 'bus-refresh'
3、主启动类
package com.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
/**
* @author dc
* @date 2020/8/5 - 16:24
*/
@SpringBootApplication
@EnableConfigServer //开启服务配置中心
public class ConfigCenterMain3344 {
public static void main(String[] args) {
SpringApplication.run(ConfigCenterMain3344.class, args);
}
}
二、configClient(3355)
1、pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud</artifactId>
<groupId>com.springcloud</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>config-client3355</artifactId>
<dependencies>
<!--必须添加的依赖(与spring-cloud-starter-bus-amqp一起添加使用,否则运行时会报ClassNotFound的错误)-->
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-amqp</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
<!--添加消息总线rabbitmq的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
2、主配置文件(bootstrap.yml)
#指定服务的端口号
server:
port: 3355
#指定微服务的名称
spring:
application:
name: config-client
#config客户端配置
cloud:
config:
#分支名称
label: master
#配置文件名称
name: config
#读取后缀名称 上述3个综合:master分支上config-dec.yml的配置文件被读取http://localhost:3344/master/config-dev.yml
profile: dev
#配置中心地址
uri: http://localhost:3344
#rabbitmq相关配置,15672是web管理界面端口,5672是访问的端口
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
#服务注册到eureka地址
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
#暴露监控端点
management:
endpoints:
web:
exposure:
include: "*"
3、主启动类
package com.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
* @author dc
* @date 2020/8/6 - 11:01
*/
@SpringBootApplication
@EnableEurekaClient
public class ConfigClientMain3355 {
public static void main(String[] args) {
SpringApplication.run(ConfigClientMain3355.class, args);
}
}
4、控制器
package com.springcloud.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author dc
* @date 2020/8/6 - 14:43
*/
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${server.port}")
private String serverPort;
@Value("${result}")
private String configInfo;
@GetMapping("/configInfo")
public String getConfigInfo() {
return "serverPort:" + serverPort + "\t\n\n configInfo:" + configInfo;
}
}
三、configClient(3366)
与configClient(3355)完全一样(除了端口号为3366)
触发动态刷新的命令(命令行):
curl -X POST “http://localhost:3344/actuator/bus-refresh”