SpringCloud学习

  1. 父工程导包:(注:要注意版本对应)推荐一套配套版本:(更新时间:2020年3月2日)SpringCloud学习_第1张图片SpringCloud学习_第2张图片

  2. EurekaServer服务器搭建:

    1. 创建maven工程

    2. 导入eureka-server服务端依赖:

    3. 写application.yml配置类:SpringCloud学习_第3张图片

    4. 写启动类:SpringCloud学习_第4张图片

  3. EurekaClient客户端使用:

    1. 在使用的模块中导入eureka-client客户端依赖:

    2. 模块配置文件中添加eureka配置:SpringCloud学习_第5张图片

    3. 模块启动类上加注解:SpringCloud学习_第6张图片

  4. Feign实现服务间的调用:

    1. 调用者导入依赖:SpringCloud学习_第7张图片

    2. 调用者启动类加注解:SpringCloud学习_第8张图片

    3. 调用者编写客户端服务调用接口:SpringCloud学习_第9张图片

    4. 调用者使用:SpringCloud学习_第10张图片

  5. 熔断器避免服务的雪崩效应:

    1.  在配置这个开启熔断:SpringCloud学习_第11张图片

    2. 写熔断实现类:SpringCloud学习_第12张图片

    3. 将熔断处理方法添加到熔断处:SpringCloud学习_第13张图片

  6. 搭建网关:

    1. 创建网关子模块,并注入到Eureka:

    2. 加入网关依赖:SpringCloud学习_第14张图片

    3. 配置文件:SpringCloud学习_第15张图片

    4. 启动类注入网关:

    5. 效果:

  7. 网关中使用过滤器:

    1. 编写一个过滤器类,继承网关过滤器类,注入容器:SpringCloud学习_第16张图片

    2. 解决经过网关头信息丢失问题:(在过滤器以以下方式将头信息继续向下传递)SpringCloud学习_第17张图片

  8. SpringCloudConfig将配置文件集中放在github上:

    1. 流程:客户端->网关->github拿config->网关->微服务->github拿config->用户微服务

    2. 文件命名规则: {application}-{profile}.yml或{application}-{profile}.properties application为应用名称 profile指的开发环境(用于区分开发环境,测试环境、生产环境 等)

    3. 步骤:

      1. 将配置文件上传到github或码云

      2. config服务端:

        1. 创建config子模块,加入依赖:SpringCloud学习_第18张图片

        2. 写配置文件:SpringCloud学习_第19张图片

        3. 启动类添加注解:SpringCloud学习_第20张图片

      3. config客户端:

        1. 删除原来子模块的配置文件

        2. 引入依赖:SpringCloud学习_第21张图片

        3. 创建新的配置文件(bootstrap.yml这个名字固定)SpringCloud学习_第22张图片

  9. SpringCloudBus实现配置的自动更新:

    1. 使用场景:当部署在码云上的配置文件修改后,需要自动更新代码中用的配置,这时,如果用了SpringCloudBus,就可以自动更新

    2. 服务器端:

      1. 导入依赖:SpringCloud学习_第23张图片

      2. 添加配置:SpringCloud学习_第24张图片

    3. 客户端:

      1. 导入依赖:SpringCloud学习_第25张图片

      2. 添加配置:

    4. 每次修改配置之后,都要发送这样一个请求,即可到不停服务更新配置的效果:

      • Url: http://127.0.0.1:12000/actuator/bus-refresh Method: post

    5. 到此,配置基本完成了,但是有一点,这样的配置,只支持框架里面的配置,自定义的配置并不能实时更新,所以还要一下操作,使得自定义配置也能更新:

      • controller加一个注解@RefreshScope 此注解用于刷新配置

      • PS:这个配置记得,以后每次写controller层都带着

 

 

你可能感兴趣的:(Java学习,微服务)