标注:

SpringBoot版本:<version>2.1.11.RELEASE</version>

SpringCloud版本:<spring-cloud.version>Greenwich.SR4</spring-cloud.version>

1.创建项目

2.修改pom文件(坐标:spring-boot-web、eureka-client、zuul)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.11.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.bjsxt</groupId><artifactId>zuul-gateway-filter</artifactId><version>0.0.1-SNAPSHOT</version><name>zuul-gateway-filter</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR4</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3.修改启动类(另添加@EnableZuulProxy)

package com.bjsxt;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;@SpringBootApplication
@EnableZuulProxy
public class ZuulGatewayFilterApplication {public static void main(String[] args) {SpringApplication.run(ZuulGatewayFilterApplication.class, args);}}

4.修改全局配置文件

spring.application.name=zuul-gateway-filter
server.port=9040#设置服务注册中心地址,指向另一个注册中心
eureka.client.service-url.defaultZone=http://admin:123456@eureka1:8761/eureka/,http://admin:123456@eureka2:8761/eureka/

5.创建LogFilter类(该类继承ZuulFilter)

package com.bjsxt.filter;import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;@Component
public class LogFilter extends ZuulFilter {private static final Logger logger=LoggerFactory.getLogger(LogFilter.class);/*** 过滤内容,在run方法编写过滤逻辑* @return* @throws ZuulException*/@Overridepublic Object run() throws ZuulException {//获取请求上下文RequestContext rc = RequestContext.getCurrentContext();HttpServletRequest request = rc.getRequest();logger.info("LogFilter......method={},url={}",request.getMethod(),request.getRequestURL().toString());return null;}/*** 是否开启过滤器,默认为false不开启* @return*/@Overridepublic boolean shouldFilter() {return true;}/*** 过滤器的执行顺序:通过整数表示顺序,数值越小,优先级越高。* @return*/@Overridepublic int filterOrder() {return 0;}/***过滤器类型:通过过滤器类型决定了过滤器执行的时间* @return**/@Overridepublic String filterType() {return "pre";//过滤器在路由规则之前执行}
}

6.启动网关过滤服务及访问的相关服务

7.浏览器输出显示

8.网关服务的控制台打印输出结果为:

zuul 启动 threw exception_SpringCloud-Zuul-网关路由过滤器相关推荐

  1. GateWay 网关路由过滤器配置

    GatewayFilter 是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理. Spring提供了31种不同的路由过滤器工厂. 官方文档:Spring Cloud Gateway ...

  2. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

    前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由 ...

  3. 微服务深入浅出(7)-- 网关路由Zuul

    Zuul用于构建边界服务,致力于动态路由,过滤,监控,弹性伸缩和安全等方向. 1.Zuul+Ribbon+Eureka结合,可以实现智能路由和负载均衡 2.网关将所有服务的API接口统一聚合统一暴露 ...

  4. eureka组件服务集群,feign远程调用,生产者服务集群,ribbon组件(负载均衡),hystrix组件(断路器),zuul(网关路由)

    一.搭建Eureka服务集群 1.创建和一个父module(用于依赖管理) a. 配置pom文件 <?xml version="1.0" encoding="UTF ...

  5. 使用Zuul构建微服务网关(路由)

    文章目录 一.网关产生的背景 二.Zuul简介 三.Zuul实现API网关 四. 路由配置详解 五.Zuul的容错与回退 六.Zuul的安全与Header 1.敏感头设置 2.忽略Header 七.Z ...

  6. zuul两大作用_springCloud学习- 路由网关(zuul)

    1.zuul简介 1.1.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性, ...

  7. nacos动态路由配置(二)-微服务启动自动配置网关路由

    经过上一篇我们发现nacos通过配置动态路由routes-api-gateway.yaml配置json,监听动态路由变化即可实现动态路由,非常的银杏化. 那么有的小伙伴发现配置json也比较麻烦,有没 ...

  8. Gateway网关-路由的过滤器配置

    过滤器工厂 GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理: 路由过滤器的种类 Spring提供了31种不同的路由过滤器工厂.例如: 名称 说明 Ad ...

  9. Spring Cloud构建微服务架构:服务网关(过滤器)【Dalston版】

    在前两篇文章:服务网关(基础).服务网关(路由配置)中,我们了解了Spring Cloud Zuul作为网关所具备的最基本功能:路由.本文我们将具体介绍一下Spring Cloud Zuul的另一项核 ...

最新文章

  1. java 中向文本写入和读取hashmap_就靠这一篇HashMap的讲解,我与头条面试官聊了一个小时。...
  2. python课程是学什么的-学习Python课程有什么好的学习方法吗?老男孩IT教育
  3. win32 去掉窗口边框
  4. python没有菜单栏怎么搞mac_Mac 下 sublime 怎么调出顶端菜单栏
  5. 【uoj#142】【UER #5】万圣节的南瓜灯 乱搞+并查集
  6. SQL Server 数据库多表查询
  7. sqlite和java_Java和SQLite
  8. 正反对角线java表示_连接4对角线Win Check
  9. 未来计算机的两个发展方向是巨型化和,【填空题】未来的计算机将以超大规模集成电路为基础,向巨型化、( )、多媒体化、网络化和智能化的方向发展。...
  10. python消费kafka逻辑处理导致cpu升高_爬虫架构|利用Kafka处理数据推送问题(1)
  11. 查看kafka的主从状态_Kafka 集群部署
  12. Linux下安装anaconda及遇到的问题
  13. 1092 : 素数表(函数专题)
  14. ABAP EXPORTING IMPORTING
  15. Miracle密码算法开源库(三)分析 :mrarth1.c
  16. linux查看运行的虚拟机,windows,linux,esxi系统判断当前主机是物理机还是虚拟机?查询主机序列号命令...
  17. PHPstudy V8 安装PHPAdmin
  18. 如何做一场有创意的活动策划?
  19. [词一首]【相思难断】
  20. 关于影视剪辑中的pr软件你了解多少?

热门文章

  1. cv::convertTo
  2. Udacity机器人软件工程师课程笔记(四)-样本搜索和找回-基于漫游者号模拟器-决策树
  3. UE卡通风格游戏场景制作视频教程
  4. UML类图符号 各种关系说明以及举例
  5. RabbitMQ 学习
  6. socket编程和并发服务器
  7. linux history记录格式修改
  8. numpy.random.seed()
  9. 2018.3.15校内互测总结-点分治-线段树
  10. RabbitMQ 异常与任务分发