spring boot 集成config


git地址


​ https://github.com/a18792721831/studySpringCloud.git ​

1. config server(本地)

1.1 创建

spring boot 集成config_微服务集成config

1.2 配置(config server本身的)

spring boot 集成config_微服务集成config_02


特别注意,需要在config server中配置profiles是native否则,config server默认从github仓库读取,启动时会异常:

spring boot 集成config_微服务config读取配置规则_03

1.3 配置(本地对于config client的)

spring boot 集成config_config与eureka_04


注意文件夹的名字在1.2中指定的。

同时这个配置文件的名字是config client的服务名字加标志。

这个标志是标志是什么环境(开发,测试,生产等)

可以随意填写。但是建议使用大家都明白的名字。

1.4 注解

spring boot 集成config_微服务config读取配置规则_05

2. config client

2.1 创建

spring boot 集成config_config与eureka_06

2.2 配置

spring boot 集成config_微服务集成config_07


注意配置文件名。

bootstrap.yml优先于application配置读取。

指定了config client的服务名字;

制定了config server的地址;

开启了读取失败时,快速失败终止;

然后制定了读取的标志。

2.3 验证快速失败

只启动config client,不启动config server,验证快速失败。

spring boot 集成config_微服务集成config_08


异常,读取配置异常,然后就终止了。

2.4 读取验证

先启动config server 然后启动config client

spring boot 集成config_微服务config读取配置规则_09


它默认发布了好多的接口。

我们尝试访问:

spring boot 集成config_微服务集成config_10


spring boot 集成config_微服务集成config_11


spring boot 集成config_config与eureka_12


你在指定的config clieng配置文件夹portconfig中的配置文件的信息都可以访问到。

接下来启动config client

spring boot 集成config_config与eureka_13


实际上我们并没有在config client中为config client指定端口,而是在config server中指定了端口。

spring boot 集成config_微服务集成config_14


spring boot 集成config_微服务config远程配置_15


但是它依然使用我们指定的进行启动的。

2.5 普通信息读取

我们在config server中配置config client的端口的文件中还配置了一个message的配置,接下来将尝试读取这个message的值。

首先需要改造config client,增加开放接口,用于读取message.

spring boot 集成config_config与eureka_16


创建一个controller,在controller中有一个属性,这个属性就是对应的配置文件中的message,使用@Value读取。

接着开放了一个接口,这个接口返回message的值。

启动config client

spring boot 集成config_config与eureka_17


访问:

spring boot 集成config_config与eureka_18


成功读取。

3. config server从git读取

3.1 创建远程配置文件

首先将之前的配置文件上传至guthub

spring boot 集成config_微服务集成config_19


然后将配置文件中的端口从8011修改为8012

spring boot 集成config_微服务config读取配置规则_20

3.2 修改config server 配置

spring boot 集成config_微服务config远程配置_21


搜索文件夹地址从这里得到

spring boot 集成config_微服务config读取配置规则_22


然后重新启动config server 和config client

spring boot 集成config_config与eureka_23


可以看到其端口已经变成远程配置的端口了。

然后访问message

spring boot 集成config_config与eureka_24


原来的端口已经无法访问了,我们换成新的端口试试。

spring boot 集成config_微服务config远程配置_25

4. config server 集群化

config server集群化,是集成eureka进行高可用的。
也就是在原来的基础上需要引入eureka server工程,且在config server 与config client中使用eureka。

4.1 eureka server

eureka server直接使用前面项目创建的eureka server,我们这里不会重新创建。

spring boot 集成config_微服务config读取配置规则_26

4.2 config server & eureka

4.2.1 创建springbootconfigeurekaserver

spring boot 集成config_微服务config读取配置规则_27

4.2.2 配置

spring boot 集成config_config与eureka_28


直接将3.2的配置文件拷贝过来就行,记得修改服务名称。

4.2.3 多实例启动

spring boot 集成config_微服务config读取配置规则_29


eureka

spring boot 集成config_微服务config远程配置_30

4.2.4 验证

spring boot 集成config_微服务集成config_31


注意,这里从github读取可能存在超时情况。

可以配置超时时间:

spring boot 集成config_微服务config读取配置规则_32


单位是秒

ctrl+左键点击timeout

spring boot 集成config_微服务集成config_33


spring boot 集成config_微服务集成config_34


没有timeout吗,应该是在父类中吧

spring boot 集成config_微服务集成config_35


找到了,看其默认是5秒钟,对于国内环境访问github,嗯嗯嗯,5秒钟还是有点勉强的,直接设置为60秒。

4.3 config client& eureka

4.3.1 创建springbootconfigeurekaclient

spring boot 集成config_微服务集成config_36

4.3.2 配置

spring boot 集成config_微服务config读取配置规则_37


这里一定遵循一个规则:${spring.application.name}-{spring.profiles.active}就是读取的配置文件的名字。

4.3.3 启动验证端口

spring boot 集成config_微服务config读取配置规则_38


这个端口是我们在远程配置的端口。

4.3.4 验证负载均衡

spring boot 集成config_config与eureka_39


从日志看,其访问的是8011的config server实例

而且日志中也打印了配置信息来源

spring boot 集成config_config与eureka_40


关闭configeurekaclient在重新启动,看会不会负载均衡。

spring boot 集成config_config与eureka_41


成功负载均衡。

4.3.5 验证message

spring boot 集成config_微服务集成config_42


spring boot 集成config_微服务config读取配置规则_43


成功访问,并且日志也打印了此次请求。

最后看下所有的服务

spring boot 集成config_微服务config远程配置_44