ipconfig默认网关为空_SpringCloud(6):Zuul网关和Zuul过滤器

zuul

服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。

Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,

同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

pom坐标

spring-cloud-starter-netflix-zuul

在引导类中开启zuul

@EnableZuulProxy // 开启网关功能

配置文件

server:
  port: 10010
spring:
  application:
    name: figo-zuul
# 编写路由规则
zuul:
  routes:
    service-provider: /provider/** #路由名称,可以随便写,习惯上是服务名
    service-customer: /consumer/**
      # path: /service-provider/** # 这里是映射路径
      # url: http://localhost:8081 # 映射路径对应的实际url地址
      # serviceId: service-provider
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka

配置zuul之后,就可以通过zuul访问之前的服务提供方和消费方了

	消费方以前是:http://localhost/customer/user?id=42
	现在可以是:http://localhost:10010/service-customer/customer/user?id=42

30e7f230c2d95383ae5cc786c91ba4cf.png
	提供方以前是:http://localhost:8081/user/42
	现在可以是:http://localhost:10010/service-provider/user/42

7bc6e7dfd54e0f9fc79d5a856bca9afd.png

IZuulFilter

public 

ZuulFilter是过滤器的顶级父类

public 

四个方法解释:

shouldFilter:返回一个Boolean值,判断该过滤器是否需要执行。返回true执行,返回false不执行。

run:过滤器的具体业务逻辑。

filterType:返回字符串,代表过滤器的类型。包含以下4种:

pre:请求在被路由之前执行

route:在路由请求时调用

post:在route和errror过滤器之后调用

error:处理请求时发生错误调用

filterOrder:通过返回的int值来定义过滤器的执行顺序,数字越小优先级越高。

zuul过滤器使用,自定义一个登录过滤器

/**

这样在访问前面的接口时,就必须加一个token参数充当登录标记了

当不加token参数时,同时请求错误

fbef09c779c406e15fbd1227d8881555.png

加token参数时,正常访问

7ef12d6a35fc3f848b74dd6469aece31.png

Zuul中默认就已经集成了Ribbon负载均衡和Hystix熔断机制。

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 6000 # 设置hystrix的超时时间为6000ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值