SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)

文章目录

  • 1.微服务环境下物理架构
  • 2.AdminServer
    • 2.1.创建maven项目
      • 2.1.1.配置pom
      • 2.1.2.配置spring
      • 2.1.3.启动类
    • 2.2.Adminserver监控自己的应用
      • 2.2.1.配置pom
      • 2.2.2.配置spring
    • 2.3.测试
    • 2.4.了解actuator
  • 3.配置服务器
    • 3.1.创建项目
      • 3.1.1.创建父项目SpringCloud
      • 3.1.2.创建pojo项目
      • 3.1.3.创建Consumer项目
      • 3.1.4.创建子项目ConfigServer
    • 3.2.将consumer项目的配置放到配置服务器
      • 3.2.1.配置配置服务器
      • 3.2.2.启动类
      • 3.2.3.配置spring
        • 3.2.3.1.配置bootstrap.xml
        • 3.2.3.2.配置application.yml
      • 3.2.4.拷贝consumer项目的配置
      • 3.2.5.配置consumer项目
    • 3.3.测试
      • 3.3.1.查看配置服务器的配置
      • 3.3.2.查看consumerservice的配置
      • 3.3.3.测试consumerservice
  • 4.服务注册与发现
    • 4.1.启动eureka服务器
      • 4.1.1.创建项目
        • 4.1.1.1.配置pom
        • 4.1.1.2.配置spring
        • 4.1.1.3.启动类
    • 4.2.服务注册
      • 4.2.1.在配置服务器项目中修改配置
      • 4.2.2.配置pom
      • 4.2.3.启动类
      • 4.2.4.测试服务注册
    • 4.3.使用adminserver监控eureka中的服务
      • 4.3.1.注册adminserver
        • 4.3.1.1.配置pom
        • 4.3.1.2.配置spring
        • 4.3.1.3.启动类
    • 4.4.服务发现-EurekaClient
      • 4.4.1.在配置服务器中增加orderservice的配置
      • 4.4.2.增加订单实体类
      • 4.4.3.创建订单项目
        • 4.4.3.1.配置pom
        • 4.4.3.2.配置spring
        • 4.4.3.3.启动类
        • 4.4.3.4.Controller
        • 4.4.3.5.Service
        • 4.4.3.6.Mapper
      • 4.4.4.测试
    • 4.5.总结
      • 4.5.1.客户服务启动流程
      • 4.5.2.订单服务调用流程
  • 5.服务发现-DiscoveryClient
    • 5.1.创建新的订单项目
      • 5.1.1.修改pom
      • 5.1.2.修改启动类
    • 5.2.修改Service
    • 5.3.测试
  • 6.客户端负载均衡
    • 6.1.创建新的订单项目
      • 6.1.1.修改pom
      • 6.1.2.修改启动类
    • 6.2.改造service
    • 6.3.测试
    • 6.4.总结
      • 6.4.1.订单服务请求流程
      • 6.4.2.客户端和服务端负载均衡
      • 6.4.3.总体架构图
  • 7.服务发现-Feign
    • 7.1.创建新的订单项目
      • 7.1.1.修改pom
      • 7.1.2.修改启动类
    • 7.2.改造service
    • 7.3.测试
  • 8.客户端弹性策略-hystrix
    • 8.1.概念
    • 8.2.创建新的订单项目
      • 8.2.1.修改pom
      • 8.2.2.修改启动类
    • 8.3.服务降级(后备)
      • 8.3.1.改造controller
      • 8.3.2.测试
      • 8.3.3.总结
    • 8.4.断路器(服务熔断)
      • 8.4.1.修改Controller
      • 8.4.2.客户端弹性超时时间设置
      • 8.4.3.测试
        • 8.4.3.1.抛出异常
        • 8.4.3.2.正常返回
    • 8.5.舱壁模式(隔离)
  • 9.客户端弹性策略-feign+hystrix
    • 9.1.创建新的订单项目
    • 9.2.修改Feign接口
    • 9.3.测试
  • 10.服务路由
    • 10.1.启动zuul服务器
      • 10.1.1.创建项目
      • 10.1.2.配置pom
      • 10.1.3.配置启动类
      • 10.1.4.配置bootstrap.xml
      • 10.1.5.在配置服务器上配置spring配置
        • 10.1.5.1.配置zuulservice.yml
        • 10.1.5.2.配置搜索路径
    • 10.2.创建新的订单项目
    • 10.3.自动路由
      • 10.3.1.修改Service
      • 10.3.2.测试
      • 10.3.3.总结
    • 10.4.手动路由
      • 10.4.1.配置
      • 10.4.2.Service
      • 10.4.3.测试
      • 10.4.4.总结
    • 10.5.静态路由
      • 10.5.1.配置和Service修改
      • 10.5.2.测试
      • 10.5.3.总结
    • 10.6.服务路由api

1.微服务环境下物理架构

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第1张图片
在微服务架构中,首先,项目要拆分为多个微服务,每个微服务发布时,又会部署为多个实例。从而形成大量微服务实例。
实例的管理
配置的管理
服务之间的访问

采用admin-server来管理上述大量的微服务实例。
采用配置服务器,统一管理配置文件,所有微服务从配置服务器上获取其配置,其自身不再需要配置。

2.AdminServer

管理所有springboot应用实例,并提供图形化界面显示其状态和参数,方便运维管理。

2.1.创建maven项目

/SpringBootAdmin

2.1.1.配置pom

如果仅仅在eclipse等工具中启动adminserver,则仅需要如下依赖即可
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第2张图片
如果要打包jar,则需要
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第3张图片
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第4张图片

2.1.2.配置spring

/SpringBootAdmin/src/main/resources/application.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第5张图片

2.1.3.启动类

/SpringBootAdmin/src/main/java/com/qfedu/demo/springboot/admin/AdminApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第6张图片

2.2.Adminserver监控自己的应用

将本项目作为一个微服务实例,纳入adminserver的管理,也就是说,adminserver既当管理者,也作为被管理对象。
下面配置,可以将某个springboot应用纳入adminserver的管理。

2.2.1.配置pom

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第7张图片

2.2.2.配置spring

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第8张图片

2.3.测试

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第9张图片

2.4.了解actuator

Adminserver引入了依赖actuator
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第10张图片
其作用是,将springboot应用的信息通过/health暴露出来
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第11张图片

3.配置服务器

3.1.创建项目

3.1.1.创建父项目SpringCloud

3.1.2.创建pojo项目

Consumer
Orders

3.1.3.创建Consumer项目

根据id获取客户信息
URL:/consumer/{id}
返回:{“id”:“1”,“name”:“张三”}
所有配置在本地。

3.1.4.创建子项目ConfigServer

3.2.将consumer项目的配置放到配置服务器

3.2.1.配置配置服务器

/springcloud-config/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第12张图片

3.2.2.启动类

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第13张图片

3.2.3.配置spring

3.2.3.1.配置bootstrap.xml

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第14张图片

3.2.3.2.配置application.yml

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第15张图片
searchLocations配置各个项目的配置文件的搜索路径

3.2.4.拷贝consumer项目的配置

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第16张图片

3.2.5.配置consumer项目

参考上节,需要新建一个bootstrap.xml配置:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第17张图片
配置pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第18张图片

3.3.测试

首先启动配置服务器,然后启动consumerservice项目

3.3.1.查看配置服务器的配置

http://localhost:8888/env
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第19张图片

3.3.2.查看consumerservice的配置

http://localhost:8888/consumerservice/default
其内容对应:
/springcloud-config/src/main/resources/config/consumerservice/consumerservice.yml

http://localhost:8888/consumerservice/dev
其内容对应:
/springcloud-config/src/main/resources/config/consumerservice/consumerservice-dev.yml

3.3.3.测试consumerservice

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第20张图片

4.服务注册与发现

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第21张图片
Springcloud采用Netflix开发eureka作为注册中心。

4.1.启动eureka服务器

4.1.1.创建项目

4.1.1.1.配置pom

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第22张图片

4.1.1.2.配置spring

/springcloud-eureka/src/main/resources/application.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第23张图片

4.1.1.3.启动类

/springcloud-eureka/src/main/java/com/qfedu/demo/springcloud/eureka/EurekaApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第24张图片

4.2.服务注册

改造consumerservice使其可以在注册中心注册

4.2.1.在配置服务器项目中修改配置

/springcloud-config/src/main/resources/config/consumerservice/consumerservice.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第25张图片

4.2.2.配置pom

/springcloud-consumer/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第26张图片

4.2.3.启动类

/springcloud-consumer/src/main/java/com/qfedu/demo/springcloud/consumer/ConsumerApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第27张图片

4.2.4.测试服务注册

启动配置服务器
启动eureka
启动consumerservice
访问http://localhost:8761/eureka/apps/
即可查看eureka上已经注册的服务

访问http://localhost:8761/eureka/apps/consumerservice
即可查看已经注册的consumerservice服务
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第28张图片

4.3.使用adminserver监控eureka中的服务

将adminserver注册到eureka中即可。

4.3.1.注册adminserver

4.3.1.1.配置pom

/SpringBootAdmin/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第29张图片

4.3.1.2.配置spring

/SpringBootAdmin/src/main/resources/application.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第30张图片

4.3.1.3.启动类

/SpringBootAdmin/src/main/java/com/qfedu/demo/springboot/admin/AdminApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第31张图片

4.4.服务发现-EurekaClient

完成订单微服务,提供/order/{id}接口,最终返回包括客户信息的订单数据。
根据订单id,到数据库查询订单数据;
根据订单中的客户id,调用客户微服务,获取客户信息,然后返回。

4.4.1.在配置服务器中增加orderservice的配置

/springcloud-config/src/main/resources/application.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第32张图片
/springcloud-config/src/main/resources/config/orderservice/orderservice.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第33张图片

4.4.2.增加订单实体类

4.4.3.创建订单项目

4.4.3.1.配置pom

/springcloud-order/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第34张图片

4.4.3.2.配置spring

/springcloud-order/src/main/resources/bootstrap.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第35张图片

4.4.3.3.启动类

/springcloud-order/src/main/java/com/qfedu/demo/springcloud/order/OrderApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第36张图片

4.4.3.4.Controller

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第37张图片

4.4.3.5.Service

/springcloud-order/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第38张图片

4.4.3.6.Mapper

/springcloud-order/src/main/java/com/qfedu/demo/springcloud/order/mapper/OrderMapper.java
/springcloud-order/src/main/resources/mapper/OrderMapper.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第39张图片

4.4.4.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderApplication
测试客户服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第40张图片
测试订单服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第41张图片

4.5.总结

4.5.1.客户服务启动流程

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第42张图片

4.5.2.订单服务调用流程

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第43张图片

5.服务发现-DiscoveryClient

5.1.创建新的订单项目

项目名称:/springcloud-order-discovery-client
拷贝/springcloud-order项目的代码和配置

5.1.1.修改pom

/springcloud-order-discovery-client/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第44张图片

5.1.2.修改启动类

/springcloud-order-discovery-client/src/main/java/com/qfedu/demo/springcloud/order/OrderDiscoveryClientApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第45张图片

5.2.修改Service

/springcloud-order-discovery-client/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第46张图片

5.3.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderDiscoveryClientApplication
测试客户服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第47张图片
测试订单服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第48张图片

6.客户端负载均衡

6.1.创建新的订单项目

项目名称:/springcloud-order-ribbon
拷贝/springcloud-order项目的代码和配置

6.1.1.修改pom

/springcloud-order-ribbon/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第49张图片

6.1.2.修改启动类

/springcloud-order-ribbon/src/main/java/com/qfedu/demo/springcloud/order/OrderRibbonApplication.java
@LoadBalaced表示采用ribbon做客户端负载均衡zu
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第50张图片

6.2.改造service

/springcloud-order-ribbon/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第51张图片

6.3.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderRibbonApplication
测试客户服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第52张图片
测试订单服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第53张图片

6.4.总结

6.4.1.订单服务请求流程

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第54张图片

6.4.2.客户端和服务端负载均衡

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第55张图片
客户端负载均衡:请求方和代理在一个进程中
服务端负载均衡:请求放和代理分别是不同的服务器

6.4.3.总体架构图

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第56张图片

7.服务发现-Feign

声明式负载均衡(服务发现)

7.1.创建新的订单项目

项目名称:/springcloud-order-feign
拷贝/springcloud-order项目的代码和配置

7.1.1.修改pom

/springcloud-order-feign/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第57张图片

7.1.2.修改启动类

/springcloud-order-feign/src/main/java/com/qfedu/demo/springcloud/order/OrderFeignApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第58张图片

7.2.改造service

/springcloud-order-feign/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
/springcloud-order-feign/src/main/java/com/qfedu/demo/springcloud/order/service/client/ConsumerFeignClient.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第59张图片

7.3.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderFeignApplication
测试客户服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第60张图片
测试订单服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第61张图片

8.客户端弹性策略-hystrix

雪崩效应:某个服务的性能问题,传播到整个系统,导致整个系统崩溃。
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第62张图片
客户端弹性
服务降级:服务B调用服务A,当发现A已经死亡或者性能有问题,采用备选方案,暂时不去调用服务A。过段时间再重新尝试调用。
服务降级如果没有备选方案,则这种模型为断路器(服务熔断)。
服务降级和统一异常处理的区别:
当服务调用出现异常或者响应较慢时,采用备选方案;
统一异常处理,是当controller抛出异常时,执行指定的代码。

服务降级或者熔断,不一定仅仅应用在远程服务调用,也可以应用在本地资源调用(数据库)。

8.1.概念

雪崩效应
客户端弹性:当服务调用出现异常或者响应较慢时,采用一定的方案
服务降级(后备) 、断路器(服务熔断)、舱壁(隔离)

8.2.创建新的订单项目

项目名称:/springcloud-order-hystrix
拷贝/springcloud-order-ribbon项目的代码和配置

8.2.1.修改pom

/springcloud-order-hystrix/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第63张图片

8.2.2.修改启动类

/springcloud-order-hystrix/src/main/java/com/qfedu/demo/springcloud/order/OrderHystrixApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第64张图片

8.3.服务降级(后备)

8.3.1.改造controller

/springcloud-order-hystrix/src/main/java/com/qfedu/demo/springcloud/order/controller/OrderController.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第65张图片

8.3.2.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderHystrixApplication
测试订单服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第66张图片
停止客户服务,继续调用订单服务
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第67张图片

8.3.3.总结

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第68张图片

8.4.断路器(服务熔断)

8.4.1.修改Controller

/springcloud-order-hystrix/src/main/java/com/qfedu/demo/springcloud/order/controller/OrderController.java
随机sleep三秒(不是必须)。
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第69张图片

8.4.2.客户端弹性超时时间设置

如果需要修改客户端弹性的超时时间,则进行如下设置:
execution.isolation.thread.timeoutInMilliseconds
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第70张图片

8.4.3.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderHystrixApplication
测试订单服务:
随机出现下面两个结果之一:

8.4.3.1.抛出异常

com.netflix.hystrix.exception.HystrixRuntimeException
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第71张图片

8.4.3.2.正常返回

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第72张图片

8.5.舱壁模式(隔离)

在默认情况下,当请求微服务接口时,hystrix会启动一个线程池,来处理并发的请求。
当高并发发生时,由于响应较慢的接口和响应较快的接口公用同一个线程池,从而导致慢接口会更多的占用线程,而快接口无线程可用,从而拖垮快接口。

此时,可以采用舱壁模式,给慢接口设置单独的线程池,从而隔离它。

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第73张图片

9.客户端弹性策略-feign+hystrix

9.1.创建新的订单项目

项目名称:/springcloud-order-feign-hystrix
拷贝项目/springcloud-order-feign的代码和配置
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第74张图片

9.2.修改Feign接口

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第75张图片

9.3.测试

启动配置服务器
启动注册中心
启动客户服务
启动订单服务OrderFeignHystrixApplication
测试订单服务:
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第76张图片
停止客户服务,继续调用订单服务
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第77张图片

10.服务路由

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第78张图片
Zuul充当服务路由器的作用,将服务请求反向代理到实际的服务上,实现服务端负载均衡;
因为所有的服务调用都要通过Zuul,所以可以用它来完成日志和服务跟踪。

10.1.启动zuul服务器

10.1.1.创建项目

/springcloud-zuul

10.1.2.配置pom

/springcloud-zuul/pom.xml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第79张图片

10.1.3.配置启动类

/springcloud-zuul/src/main/java/com/qfedu/demo/springcloud/zuul/ZuulApplication.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第80张图片

10.1.4.配置bootstrap.xml

/springcloud-zuul/src/main/resources/bootstrap.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第81张图片

10.1.5.在配置服务器上配置spring配置

10.1.5.1.配置zuulservice.yml

/springcloud-config/src/main/resources/config/zuulservice/zuulservice.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第82张图片

10.1.5.2.配置搜索路径

/springcloud-config/src/main/resources/application.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第83张图片

10.2.创建新的订单项目

项目名称:/springcloud-order-zuul
拷贝项目/springcloud-order-ribbon的代码和配置

10.3.自动路由

10.3.1.修改Service

/springcloud-order-zuul/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第84张图片

10.3.2.测试

启动配置服务器
启动eureka服务器
启动zuul服务器
启动客户服务器
启动订单服务器OrderZuulApplication
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第85张图片

10.3.3.总结

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第86张图片

10.4.手动路由

10.4.1.配置

/springcloud-config/src/main/resources/config/zuulservice/zuulservice.yml
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第87张图片

10.4.2.Service

/springcloud-order-zuul/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第88张图片

10.4.3.测试

启动配置服务器
启动eureka服务器
启动zuul服务器
启动客户服务器
启动订单服务器OrderZuulApplication

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第89张图片

10.4.4.总结

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第90张图片

10.5.静态路由

10.5.1.配置和Service修改

/springcloud-config/src/main/resources/config/zuulservice/zuulservice.yml
/springcloud-order-zuul/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第91张图片

10.5.2.测试

启动配置服务器
启动eureka服务器
启动zuul服务器
启动客户服务器
启动订单服务器OrderZuulApplication

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第92张图片

10.5.3.总结

SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第93张图片

10.6.服务路由api

/springcloud-config/src/main/resources/config/zuulservice/zuulservice.yml
/springcloud-order-zuul/src/main/java/com/qfedu/demo/springcloud/order/service/impl/OrderServiceImpl.java
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第94张图片
SpringCloud入门(源代码:https://gitee.com/jiaodacailei/springcloud-study.git)_第95张图片

你可能感兴趣的:(spring,springcloud)