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