小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秒的这里注释掉。
新建项目
需要往注册中心注册。
选择网关 Zuul
最终选择这两个
默认的依赖在创建项目的时候已经加载进来了
配置文件改成yml格式的
需要给应用起个名称。spring.a会有只能提示,选择application.name第一个 就可以了
指定注册中心的地址
启动类加注解
EnableZuulProxy的注解
启动应用
api-gateway已经注册到注册中心
默认访问规则
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网关的了
原来直接访问productService的方式
通过网关访问productService
自定义路径规则
apigateway就替换了order-service
重启应用进行测试
默认是用order-service访问的
换成apigateway
忽略掉product-service.商品服务不对外给提供路由
重启服务
订单服务是可以正常的访问的
product-service原先可以访问,现在访问不到
忽略掉:/*-service/**
一个*是匹配两个斜线之间的所有内容,**是匹配斜线后的所有内容。
重启应用
把商品服务也加进来了
商品服务的列表数据接口也可以访问到了
直接通过端口访问product的服务也是可以的 不通过网关。端口8773
环境隔离
环境隔离配置:
需求 :不想让默认的服务对外暴露接口
/order-service/api/v1/order/save
真正部署是内外网隔离的方式