cloud 版本:
Finchley.SR2
boot 版本:
2.0.9
这里说明下,官方给出的对应版本Finchley.SR2 - 》2.0.X
使用SpringBoot 2.0.4 和2.0.6会出现一个问题,就是post请求:/actuator/bus-refresh报错,报错信息可以看:https://blog.csdn.net/qq_28911061/article/details/90733928
config server端配置:
application.yml
代码语言:javascript复制server:
# address: 192.168.168.9
port: 17999
address: 192.168.168.14
spring:
application:
name: config-server
# 激活本地搜索 - 必须配置
profiles:
active: native
#具体搜索路径
cloud:
config:
server:
native:
search-locations: file:///D:/config-file
#rabbitmq 配置 - 必须配置
rabbitmq:
host: 192.168.168.9
port: 5672
username: ***
password: ***
# Eureka Server配置
gaia:
eureka:
server:
ip: 192.168.168.9
post: 18000
server2:
ip: 192.168.168.14
post: 18000
security:
user:
name: ***
password: ***
eureka:
instance:
#IP地址
ip-address: ${server.address}
#显示的服务名
instance-id: http://${server.address}:${server.port}
#是否映射ip
prefer-ip-address: true
client:
service-url:
#集群
defaultZone: http://${gaia.eureka.security.user.name}:${gaia.eureka.security.user.password}@${gaia.eureka.server.ip}:${gaia.eureka.server.post}/eureka/,http://${gaia.eureka.security.user.name}:${gaia.eureka.security.user.password}@${gaia.eureka.server2.ip}:${gaia.eureka.server2.post}/eureka/
healthcheck:
enabled: true
#必须配置
management:
endpoints:
web:
exposure:
include: bus-refresh
说明:这里配置的使用native方式,下面是git方式,只需要改一部分就可以了。
代码语言:javascript复制spring:
application:
name: config-server3
cloud:
config:
server:
git:
#git仓库下的项目地址
uri: https://gitee.com/LIRUIYI/springcloud-config
# #占位符匹配git仓库,应用名称命名的仓库名
# uri: https://gitee.com/LIRUIYI/{application}
#配置仓库路径下的相对位置,可以配置多个
# search-paths: cloud
#占位符匹配以应用名称命名的文件夹名
search-paths: '{application}'
#连接了私有仓库需填写用户名和密码
username: ***
password: **
#连接超时时间
timeout: 4
启动类上加注解:
代码语言:javascript复制@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class);
}
}
到这,config server配置完毕;
然后是config client - 》 bootstrap.yml
代码语言:javascript复制server:
#这里配置端口会被config server上下载下来的覆盖。
port: 18020
#config server的地址
config:
server:
port: 17999
# ip: 192.168.168.9
serverId: CONFIG-SERVER
# ip: 127.0.0.1
spring:
application:
name: config-client
#config server 配置
cloud:
config:
#单机配置
# uri: http://${config.server.ip}:${config.server.port}
#环境版本
profile: test
#配置多个文件加载;commons - 》 公共配置
name: config-client,commons
#配置config server 集群 ;需要该客户端先配置eureka client
discovery:
service-id: ${config.server.serverId}
enabled: true
#下面3个必须写在这里的配置。
#mq 配置 - 必须
rabbitmq:
host: 192.168.168.9
port: 5672
username: ***
password: ***
#必须
main:
allow-bean-definition-overriding: true
#暴露刷新端口 - 必须
management:
endpoints:
web:
exposure:
include: bus-refresh
# Eureka Server配置 - 访问集群的config server需要在这里配置eureka
gaia:
eureka:
server:
ip: 192.168.168.9
post: 18000
server2:
ip: 192.168.168.14
post: 18000
security:
user:
name: ***
password: ***
# Eureka Client配置
eureka:
instance:
prefer-ip-address: true
status-page-url-path: /actuator/info
health-check-url-path: /actuator/health
# Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则)
lease-renewal-interval-in-seconds: 10
# Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己)
lease-expiration-duration-in-seconds: 60
client:
serviceUrl:
defaultZone: http://${gaia.eureka.security.user.name}:${gaia.eureka.security.user.password}@${gaia.eureka.server.ip}:${gaia.eureka.server.post}/eureka/,http://${gaia.eureka.security.user.name}:${gaia.eureka.security.user.password}@${gaia.eureka.server2.ip}:${gaia.eureka.server2.post}/eureka/
healthcheck:
enabled: true
说明:
1、在这配置mq,是因为我们使用动态刷新,加入了bus,在我们访问/actuator/bus-refresh时,需要将该端点暴露,
2、allow-bean-definition-overriding 这个配置 你不配置,他都会提示你配置
3、managerment.endpoints 这个配置,暴露端点,实现动态刷新。
4、eureka 注册配置,这里我配置了集群方式的,那么就必须要eureka支持,因为这里我们写的是服务id,该文件是bootstrap,在应用程序启动加载作为程序引导使用的,所以是先加载这个文件向config server发送获取配置文件的请求,所以,本地是没有配置文件的,eureka的配置就必须配置在这个文件;
5、spring.cloud.config.name 这里是加载多个文件的,有很多个配置文件,但是基本一样的时候,我们就可以把相同配置提取出来比较方便,比如我配置了:比如client配置了spring.application.name = config-client,spring.cloud.config.profiles=dev,spring.cloud.config.name=config-client,commons
在文件系统中存放的文件有:config-client-dev.yml 、commons-dev.yml
就会加载到两个。