小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

时间:2023-03-09 01:36:56
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

笔记

2、SpringCloud的网关组件zuul基本使用
    简介:讲解zuul网关基本使用

1、加入依赖

2、启动类加入注解 @EnableZuulProxy
        默认集成断路器  @EnableCircuitBreaker

默认访问规则  
            http://gateway:port/service-id/**

例子:默认 /order-service/api/v1/order/save?user_id=2&product_id=1
                     自定义 /xdclass_order/api/v1/order/save?user_id=2&product_id=1

自定义路由转发:
            zuul:
             routes:
                 order-service: /apigateway/**

环境隔离配置:
            需求 :不想让默认的服务对外暴露接口
                /order-service/api/v1/order/save

配置:
            zuul: 
                ignored-patterns:
                    - /*-service/api/v1/order/save

开始

新建项目之前回复一些之前模拟的数据、例如ProductService里面延迟2秒的这里注释掉。小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

新建项目

小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
需要往注册中心注册。
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
选择网关 Zuul
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
最终选择这两个
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
默认的依赖在创建项目的时候已经加载进来了
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
配置文件改成yml格式的
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
需要给应用起个名称。spring.a会有只能提示,选择application.name第一个 就可以了
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
指定注册中心的地址
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
启动类加注解
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
EnableZuulProxy的注解
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

启动应用

api-gateway已经注册到注册中心
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

默认访问规则  
            http://gateway:port/service-id/**

例子:默认 /order-service/api/v1/order/save?user_id=2&product_id=1
                     自定义 /xdclass_order/api/v1/order/save?user_id=2&product_id=1

这是原来订单的服务访问的地址
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
通过网关访问,订单服务的接口。现在就是经过Zuul网关的了
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
原来直接访问productService的方式
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
通过网关访问productService小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

自定义路径规则

小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
apigateway就替换了order-service
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
重启应用进行测试
默认是用order-service访问的
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
换成apigateway
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
忽略掉product-service.商品服务不对外给提供路由
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
重启服务
订单服务是可以正常的访问的
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
product-service原先可以访问,现在访问不到
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
忽略掉:/*-service/**
一个*是匹配两个斜线之间的所有内容,**是匹配斜线后的所有内容。
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
重启应用
 
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
把商品服务也加进来了
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
商品服务的列表数据接口也可以访问到了
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
直接通过端口访问product的服务也是可以的 不通过网关。端口8773
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul

环境隔离

环境隔离配置:
            需求 :不想让默认的服务对外暴露接口
                /order-service/api/v1/order/save
真正部署是内外网隔离的方式
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul