首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java Spring cloud zuul API网关服务

01

前言

通过前几章的介绍,我们对springcloud netflix的核心组件已经了解了一大半,基本涵盖了微服务架构中最为基础的几个核心设施。利用这些组件,已经可以构建一个微服务系统架构了。

在本篇内容中,我们把眼光聚集在对外服务这块内容。

02

spring cloud zuul

首先对于路由规则与服务实例的维护问题。Spring cloud zuul通过与springcloud eureka进行整合,将自身注册为eureka服务治理下的应用。同时从eureka中获取所有其他微服务的实例信息。

这样的设计非常巧妙的将服务治理体系中维护的实例信息利用起来。使得将维护实例的工作交给了服务治理框架自动完成。节约人工成本。

而对于路由规则的维护,zuul默认会以服务名作为contextPath的方式来创建路由映射。大部分情况下,这样的默认设置已经可以实现我们大部分的路由需求。除非一些特殊情况,比如兼容一些老的url。

03

签名校验

对于签名校验,登录校验在微服务架构中的冗余问题。理论上来说,这些校验逻辑在本质上与服务自身的业务并没有多大的关系。所以她们完全可以独立成一个单独的服务存在。

只是她们在剥离和独立出来之后,并不是给各个微服务调用,而是在api网关服务上进行统一调用拉对微服务接口做前置过滤.以实现对微服务的拦截和校验。

Zuul提供了一套过滤器机制,它可以很好的支持这样的任务。开发者可以通过zuul来创建各种校验过滤器,然后指定哪些规则的请求需要执行校验逻辑。

只有通过校验的才会被路由到具体的微服务接口,不然就返回错误提示。通过这样的改造,各个业务层的微服务应用在不要需要业务性质的校验逻辑了。

04

请求生命周期

对于zuul的过滤类型filterType,zuul默认定义了四种不同的过滤器类型。她们覆盖了一个外部http请求到达api网关,直到返回请求结果的的全部生命周期。

核心过滤器,它们会在api网关服务启动的时候被自动加载和启动。

Pre过滤器,它的执行顺序为-3,罪案执行的过滤器,该过滤器总是被执行。

Post过滤器,它的执行顺序为0,是post阶段第一个执行的过滤器。

Route过滤器,它的执行顺序为10,是route阶段第一个执行的过滤器。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200708A0TUJV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券