SpringCloud学习
-
父工程导包:(注:要注意版本对应)推荐一套配套版本:(更新时间:2020年3月2日)
-
EurekaServer服务器搭建:
-
创建maven工程
-
导入eureka-server服务端依赖:
-
写application.yml配置类:
-
写启动类:
-
-
EurekaClient客户端使用:
-
在使用的模块中导入eureka-client客户端依赖:
-
模块配置文件中添加eureka配置:
-
模块启动类上加注解:
-
-
Feign实现服务间的调用:
-
调用者导入依赖:
-
调用者启动类加注解:
-
调用者编写客户端服务调用接口:
-
调用者使用:
-
-
熔断器避免服务的雪崩效应:
-
在配置这个开启熔断:
-
写熔断实现类:
-
将熔断处理方法添加到熔断处:
-
-
搭建网关:
-
创建网关子模块,并注入到Eureka:
-
加入网关依赖:
-
配置文件:
-
启动类注入网关:
-
效果:
-
-
网关中使用过滤器:
-
编写一个过滤器类,继承网关过滤器类,注入容器:
-
解决经过网关头信息丢失问题:(在过滤器以以下方式将头信息继续向下传递)
-
-
SpringCloudConfig将配置文件集中放在github上:
-
流程:客户端->网关->github拿config->网关->微服务->github拿config->用户微服务
-
文件命名规则: {application}-{profile}.yml或{application}-{profile}.properties application为应用名称 profile指的开发环境(用于区分开发环境,测试环境、生产环境 等)
-
步骤:
-
将配置文件上传到github或码云
-
config服务端:
-
创建config子模块,加入依赖:
-
写配置文件:
-
启动类添加注解:
-
-
config客户端:
-
删除原来子模块的配置文件
-
引入依赖:
-
创建新的配置文件(bootstrap.yml这个名字固定)
-
-
-
-
SpringCloudBus实现配置的自动更新:
-
使用场景:当部署在码云上的配置文件修改后,需要自动更新代码中用的配置,这时,如果用了SpringCloudBus,就可以自动更新
-
服务器端:
-
导入依赖:
-
添加配置:
-
-
客户端:
-
导入依赖:
-
添加配置:
-
-
每次修改配置之后,都要发送这样一个请求,即可到不停服务更新配置的效果:
-
Url: http://127.0.0.1:12000/actuator/bus-refresh Method: post
-
-
到此,配置基本完成了,但是有一点,这样的配置,只支持框架里面的配置,自定义的配置并不能实时更新,所以还要一下操作,使得自定义配置也能更新:
-
controller加一个注解@RefreshScope 此注解用于刷新配置
-
PS:这个配置记得,以后每次写controller层都带着
-
-