- 搭建RabbitMQ服务,具体过程需要自行百度,网上教程很多 ,效果如下:

注意:RabbitMQ默认网页端口15672,AMQP默认端口5672(我们链接时用这个)
- 主工程parent

pom.xml配置文件
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kgf</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>parent</name>
<!--继承一个父模块,然后再引入相应的依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<!--relativePath是可选的,maven会首先搜索这个地址,在搜索本地远程repositories之前 -->
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java-version>1.8</java-version>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>
<!--下面的方式通过import可以实现多继承的问题 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>springcloud-config-server</module>
<module>springcloud-config-client</module>
<module>springcloud-eureka-server</module>
</modules>
</project>
- 创建服务注册和发现中心springcloud-eureka-server服务

⑴创建启动类SpringCloudEurekaServerApplication.java

⑵创建配置文件application.yml文件

⑶在pom.xml文件中添加依赖
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.kgf</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>springcloud-eureka-server</artifactId>
<dependencies>
<!-- 引入eureka-server依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!--能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 创建分布式配置中心springcloud-config-server服务,用来为springcloud-config-client提供配置文件信息

⑴创建服务启动类SpringCloudConfigServer.java

⑵创建配置文件application.yml文件(当然这里我们只需要启动一个服务实例即可,这里我们选中的是8888)
---
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: https://github.com/kangf897570/SpringcloudConfig
search-paths:
- respo1
username: kangf897570
password: [email protected]
label: master
application:
name: config-server
profiles: dev
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
---
server:
port: 9999
spring:
cloud:
config:
server:
git:
uri: https://github.com/kangf897570/SpringcloudConfig
search-paths:
- respo2
username: kangf897570
password: [email protected]
label: master
application:
name: config-server
profiles: test
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
⑶在pom.xml中添加依赖
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.kgf</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>springcloud-config-server</artifactId>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 创建分布式配置中心客户端springcloud-config-client服务

⑴创建启动类SpringCloudConfigClientApplication.java

⑵创建配置文件bootstrap.yml
---
server:
port: 8762
spring:
application:
name: config-client
profiles: dev
cloud:
config:
name: config-client-dev #表示要获取的配置文件名称
fail-fast: true
discovery:
enabled: true
service-id: config-server #服务名称,表示从这个服务获取配置信息
---
server:
port: 8763
spring:
application:
name: config-client
profiles: test
cloud:
config:
name: config-client-dev
fail-fast: true
discovery:
enabled: true
service-id: config-server
⑶在pom.xml中添加依赖
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.kgf</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>springcloud-config-client</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</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-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 引入eureka依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
</project>
- 查看从GitHub上要获取的配置信息
- 测试,按顺序启动springcloud-eureka-server,springcloud-config-server(启动一个8888端口实例即可),
springcloud-config-client服务(两个实例8762和8763),当然MQ要启动。
效果如下:
首先分别访问8762和8763服务:

那么下面我们修改一下GitHub上的配置文件信息:

再次请求8762,8763页面发现和上面一下,数据并没有变化。


下面我们使用springcloud bus消息总线访问一下8762服务,刷新一下配置信息(使用Postman发送post请求)。
路径:http://localhost:8762/actuator/bus-refresh
下面再次刷新8762,8763页面,效果如下:
