是什么?

能干吗?
路由和网关

开始

新建工程导入jar

配置yml




禁用不通过zuul的访问方式,我们的目的时要想访问先经过zuul,而不能直接访问。真是开发这里配置的*,表示禁止所有,具体看下一张图


加一个访问的统一前缀

其中在代码里面出现的“mydept”是一个逻辑名称,该名称的主要作用是将 path 与 serviceId 绑定在一起。(我的理解是,自己取得名字不重要,重要的是这个名字点了path和serviceId,该名称的主要作用是将 path 与 serviceId 绑定在一起,就相当于下面的api-a和api-b)

下图方志朋的写法:

eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
server:port: 8769
spring:application:name: service-zuul
zuul:routes:api-a:path: /api-a/**serviceId: service-ribbonapi-b:path: /api-b/**serviceId: service-feign

启动类添加注解



下面比较启用路由和未启用路由的地址对比

四、服务过滤

zuul不仅只是路由,并且还能过滤,做一些安全验证。继续改造工程;

@Component
public class MyFilter extends ZuulFilter{private static Logger log = LoggerFactory.getLogger(MyFilter.class);@Overridepublic String filterType() {return "pre";}@Overridepublic int filterOrder() {return 0;}@Overridepublic boolean shouldFilter() {return true;}@Overridepublic Object run() {RequestContext ctx = RequestContext.getCurrentContext();HttpServletRequest request = ctx.getRequest();log.info(String.format("%s >>> %s", request.getMethod(), request.getRequestURL().toString()));Object accessToken = request.getParameter("token");if(accessToken == null) {log.warn("token is empty");ctx.setSendZuulResponse(false);ctx.setResponseStatusCode(401);try {ctx.getResponse().getWriter().write("token is empty");}catch (Exception e){}return null;}log.info("ok");return null;}
}

filterType:返回一个字符串代表过滤器的类型,在zuul中定义了四种不同生命周期的过滤器类型,具体如下:
pre:路由之前
routing:路由之时
post: 路由之后
error:发送错误调用
filterOrder:过滤的顺序
shouldFilter:这里可以写逻辑判断,是否要过滤,本文true,永远过滤。
run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问。

springcloud之网关zuul学习笔记相关推荐

  1. SpringCloud 服务网关 Zuul 自定义路由和排除路由配置

    前言 首先需要说明的是该文是 [带你入门SpringCloud 之 服务网关 Zuul ]的拓展篇,如果还未阅读 [带你入门SpringCloud 之 服务网关 Zuul ]请先阅读完毕后在阅读该文. ...

  2. springcloud中网关zuul的过滤器zuulFilter的使用

    1 介绍 Filter 的生命周期有 4 个,分别是   "PRE(前置过滤器)":该类型的filters在Request routing到源web-service之前执行.用来实 ...

  3. springcloud 服务网关Zuul实战(二)路由访问映射规则

    上篇文中已经讲完基本的路由配置,但是我们如何对访问的微服务做映射 访问的地址:http://myzuul.com:9527/microservicecloud-dept/dept/get/2 从访问地 ...

  4. springcloud 服务网关Zuul实战(一)基本路由配置

    上篇我们介绍了zuul是什么?大家已经有些了解,废话不多说我们就开始实际代码演示下zuul如何配置 一,新建一个路由网关的微服务 microservicecloud-zuul-gateway-9527 ...

  5. SpringCloud: 路由网关(zuul)

    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简答的微服务系统如下图: ...

  6. 网关——Zuul学习

    1000+最新Java面试题 概念 Zuul 是 Netflix 开源 Zuul 的核心是一系列的 filters. 路由与过滤是Zuul的两大核心功能:路由功能负责将外部请求转发到具体的服务实例上去 ...

  7. centos同网段双网关_学习笔记之初识网关

    网关这个名词对于很多人来说应该是个很耳熟的名词吧.在设置电脑的IP时就经常会看到默认网关这个名词,如下图所示: 那么网关到底是个什么东西呢?从名字上来看网关是一个关口,网关就是从一个网络到另一个网络的 ...

  8. springcloud微服务实战 学习笔记五 Hystrix服务降级 Hystrix依赖隔离 断路器

    ###服务降级 在之前eureka-consumer的基础上 添加依赖 <dependency><groupId>org.springframework.cloud</g ...

  9. SpringCloud学习笔记(1)- Spring Cloud Netflix

    文章目录 SpringCloud学习笔记(1)- Spring Cloud Netflix 单体应用存在的问题 Spring Cloud Eureka Eureka Server代码实现 Eureka ...

最新文章

  1. Nature | 复旦大学把衣服变成了显示器,能聊天能导航,水洗弯折都不怕
  2. 教你辨别36k纯数据科学家
  3. Flask abort
  4. 北大青鸟消防设备类型编码_探测器该如何编码?即报警区域、探测区域的真正用途...
  5. 免费开源的thinkphp办公管理系统
  6. 公共基础知识计算机,事业单位考试公共基础知识:计算机基础知识
  7. background-image 与 img 动画性能对比
  8. Asp.Net完美隐藏服务器信息
  9. 华为设备离线什么意思_华为手机中的P、Mate、nova分别是什么意思?看完你全懂了...
  10. Woderwate-Intouch驱动(包括施耐德,西门子,AB等的DASever、IOServer)
  11. echarts柱状图参数详解
  12. 使用busybox制作rootfs
  13. DoIP协议从入门到精通系列——DoIP协议时间参数
  14. 数据库:PostgreSQL 和 MySQL对比
  15. Windows ❀ 使用CMD配置或修改IP地址与DNS命令
  16. Bootstrap(五) 导航条、分页导航
  17. 支持DX12的DeepFaceLab(DeepFake)新版本除了CUDA也可以用A卡啦
  18. 游戏开发学习路线--书籍
  19. C语言 - 钩子函数详解
  20. 【限速标志识别】形态学限速标志识别【含GUI Matlab源码 1142期】

热门文章

  1. 【HNOI 2019】JOJO
  2. jsp/html开发中常用的JS代码和页面特效代码
  3. 学会git玩转github,结尾有惊喜!有惊喜!有惊喜!
  4. unity相机脚本 鼠标滚轮控制缩放
  5. 淘宝双十一为什么这么火?
  6. Qt打包生成exe: 无法定位程序输入点
  7. 王良:考砸了,学不好,父母、孩子怎么办
  8. TCP/UDP协议总结与应用层常见协议及端口
  9. rabbitmq基础5——集群节点类型、集群基础运维,集群管理命令,API接口工具
  10. 历数与刘德华擦肩而过的女人