SpringCloud学习

165 阅读2分钟
  1. 父工程导包:(注:要注意版本对应)推荐一套配套版本:(更新时间:2020年3月2日)

  2. EurekaServer服务器搭建:

    1. 创建maven工程
    2. 导入eureka-server服务端依赖:
    3. 写application.yml配置类:
    4. 写启动类:
  3. EurekaClient客户端使用:

    1. 在使用的模块中导入eureka-client客户端依赖:
    2. 模块配置文件中添加eureka配置:
    3. 模块启动类上加注解:
  4. Feign实现服务间的调用:

    1. 调用者导入依赖:
    2. 调用者启动类加注解:
    3. 调用者编写客户端服务调用接口:
    4. 调用者使用:
  5. 熔断器避免服务的雪崩效应:

    1.  在配置这个开启熔断:
    2. 写熔断实现类:
    3. 将熔断处理方法添加到熔断处:
  6. 搭建网关:

    1. 创建网关子模块,并注入到Eureka:
    2. 加入网关依赖:
    3. 配置文件:
    4. 启动类注入网关:
    5. 效果:
  7. 网关中使用过滤器:

    1. 编写一个过滤器类,继承网关过滤器类,注入容器:
    2. 解决经过网关头信息丢失问题:(在过滤器以以下方式将头信息继续向下传递)
  8. SpringCloudConfig将配置文件集中放在github上:

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

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

    3. 步骤:

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

      2. config服务端:

        1. 创建config子模块,加入依赖:
        2. 写配置文件:
        3. 启动类添加注解:
      3. config客户端:

        1. 删除原来子模块的配置文件
        2. 引入依赖:
        3. 创建新的配置文件(bootstrap.yml这个名字固定)
  9. SpringCloudBus实现配置的自动更新:

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

    2. 服务器端:

      1. 导入依赖:
      2. 添加配置:
    3. 客户端:

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

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

      • controller加一个注解@RefreshScope 此注解用于刷新配置
      • PS:这个配置记得,以后每次写controller层都带着