【续】账单管理项目,需要开发基于 resutful 的 webservice,搭建 Eureka Server,并把把账单服务注册到 Eureka Server
控制中心项目:
项目结构:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gac9kziU-1634736832730)(C:\Users\helln\AppData\Roaming\Typora\typora-user-images\image-20211020212545865.png)]
pom.xml文件:
<?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>zym-springcloud</artifactId>
<groupId>com.zym</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>config-server</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
</dependencies>
</project>
在码云注册账号并建库,把user-service固有的配置文件放上去:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVDwHIRu-1634736832736)(C:\Users\helln\AppData\Roaming\Typora\typora-user-images\image-20211020212428594.png)]
server:
port: ${port:9091}
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/bill-manager
username: root
password: zym1100oo
application:
name: user-service
mybatis:
type-aliases-package: com.zym.pojo
eureka:
client:
service-url: # eureka 服务地址,如果是集群的话;需要指定其它集群eureka地址
defaultZone: HTTP://127.0.0.1:10086/eureka # 不注册自己
test:
name: zym
配置文件:
server:
port: 12000
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://gitee.com/zhang-sudu/my-config.git
# 配置rabbitmq信息;如果是都与默认值一致则不需要配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
management:
endpoints:
web:
exposure:
# 暴露触发消息总线的地址
include: bus-refresh
启动类:
package com.zym;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
bus
前面已经完成了将微服务中的配置文件集中存储在远程Git仓库,并且通过配置中心微服务从Git仓库拉取配置文件, 当用户微服务启动时会连接配置中心获取配置信息从而启动用户微服务。 如果我们更新Git仓库中的配置文件,那用户微服务是否可以及时接收到新的配置信息并更新呢,使用bus就可以实现。
bus在之前的pom.xml文件中已经引入,测试步骤:
第一步:依次启动注册中心 eureka-server 、配置中心 confifig-server 、用户服务 user-service
第二步:访问用户微服务http://localhost:9091/user/6;查看IDEA控制台输出结果
第三步:修改Git仓库中配置文件 user-dev.yml 的 test.name 内容
第四步:使用Postman工具发送POST方式请求访问地址 http://127.0.0.1:12000/actuator/bus-refresh
第四步之后,远程配置的修改就可以同步下来了。
件 user-dev.yml 的 test.name 内容
第四步:使用Postman工具发送POST方式请求访问地址 http://127.0.0.1:12000/actuator/bus-refresh
第四步之后,远程配置的修改就可以同步下来了。