这里仍然以Windows和jdk为运行环境,按照下面的步骤打包-运行-访问就能看到效果。启动项目jar包:
  java -jar F:\jars-zuul\register-0.0.1-SNAPSHOT.jar
  java -jar F:\jars-zuul\zuul-0.0.1-SNAPSHOT.jar
  java -jar F:\jars-zuul\notes-0.0.1-SNAPSHOT.jar --server.port=9001
  java -jar F:\jars-zuul\notes-0.0.1-SNAPSHOT.jar --server.port=9002
zuul网关配置文件配置如下内容,并在启动类加注解@EnableZuulProxy:
  #取名api-a映射一个应用#取名api-a映射一个服务
  server.port=3333
  zuul.routes.api-a.path=/api-a/**
  zuul.routes.api-a.service-id=notes
zuul过滤器对输入的内容做了如下过滤处理:
  @Override
  public Object run(){
    HttpServletRequest request = RequestContext.getCurrentContext().getRequest();
    String string = request.getParameter("notes");
    if(string != null && string.contains("中国")){
      HttpServletResponse response = RequestContext.getCurrentContext().getResponse();
      try {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(response.getOutputStream());
        outputStreamWriter.write("forbidden words!");
        outputStreamWriter.flush();
        outputStreamWriter.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    return string;
  }
新建spring boot项目(提供关于用户评论的接口),zuul实现了对notes服务的统一访问,访问地址:
  http://localhost:3333/notes?notes=中国,厉害了我的国。页面将返回过滤后的内容“forbidden words!”。
源码地址:https://github.com/zhzhair/spring-cloud-zuul.git。

spring cloud--zuul网关和zuul请求过滤的更多相关文章

  1. SPRING CLOUD服务网关之ZUUL

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

  2. Spring Cloud alibaba网关 sentinel zuul 四 限流熔断

    spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架 Sentinel 介绍 官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentine ...

  3. Spring Cloud gateway 网关服务二 断言、过滤器

    微服务当前这么火爆的程度,如果不能学会一种微服务框架技术.怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习.说没有时间?没有精力?要学俩个框架?而Spring C ...

  4. Spring Cloud gateway 网关四 动态路由

    微服务当前这么火爆的程度,如果不能学会一种微服务框架技术.怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习.说没有时间?没有精力?要学俩个框架?而Spring C ...

  5. Spring Cloud 服务网关Zuul

    Spring Cloud 服务网关Zuul 服务网关是分布式架构中不可缺少的组成部分,是外部网络和内部服务之间的屏障,例如权限控制之类的逻辑应该在这里实现,而不是放在每个服务单元. Spring Cl ...

  6. spring cloud 2.x版本 Zuul路由网关教程

    前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...

  7. Spring Cloud 系列之 Netflix Zuul 服务网关

    什么是 Zuul Zuul 是从设备和网站到应用程序后端的所有请求的前门.作为边缘服务应用程序,Zuul 旨在实现动态路由,监视,弹性和安全性.Zuul 包含了对请求的路由和过滤两个最主要的功能. Z ...

  8. Spring Cloud API网关服务 5.2

    为什么需要API网关 通过前面内容的学习,我们已经可以构建一个简单的微服务架构系统.这个系统可以使用Spring Boot实现微服务的开发,使用Spring Cloud Eureka实现注册中心以及服 ...

  9. .net core下,Ocelot网关与Spring Cloud Gateway网关的对比测试

    有感于 myzony 发布的 针对 Ocelot 网关的性能测试 ,并且公司下一步也需要对.net和java的应用做一定的整合,于是对Ocelot网关.Spring Cloud Gateway网关做个 ...

  10. Spring Cloud实战 | 第十一篇:Spring Cloud Gateway 网关实现对RESTful接口权限控制和按钮权限控制

    一. 前言 hi,大家好,这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT实现的统 ...

随机推荐

  1. Jira安装过程

    一.下载jira jira下载路径:https://www.atlassian.com/software/jira/download 二.安装 jira安装一直下一步下一步即可 三.破解 E:\JIR ...

  2. .netcore 读取ansi编码

    public class FileHelper { //根据文件自动觉察编码并输出内容 public static string GetText(string path) { StringBuilde ...

  3. centos7和centos6通过yum安装JDK1.8

    centos7和centos6通过yum安装JDK1.8 查看JDK的安装路径# java -version============================查看Linux系统版本信息# cat ...

  4. Tomcat不需要输入项目名便可访问项目(直接用域名或者ip)

    一般需要输入项目名访问项目是怎么个方法呢? 直接将项目放在 tomcat 安装目录的 webapps 目录下, 然后在域名或者ip后面 域名(ip)/项目目录, 这样会显得比较麻烦. 那么应该怎么才可 ...

  5. MySQL——合并查询结果

    利用  UNION 关键字,可以给出多条  SELECT  语句,并将它们的结果组合成一个结果集.合并时,两个表对应的列数和数据类型必须相同.SELECT 语句之间使用  UNION  或  UNIO ...

  6. 使用c++如何实现在gRPC中传输文件

    使用c++实现gRPC远程调用框架中传输文件,proto文件如下: syntax = "proto3"; package transferfile; service Transfe ...

  7. NodeJS脚本启动工具总结

    1. 使用npm 2. 使用pm2 安装: npm install pm2 -g 启动: NODE_ENV=test pm2 start newsCrawler.js 停止: pm2 stop new ...

  8. js判断手机端

    if (window.location.toString().indexOf('pref=padindex') != -1) { } else { if (/AppleWebKit.*Mobile/i ...

  9. EXCEL计算根据当前时间和身份证号计算准确年龄

    假设身份证号在A2单元格 =IF(MONTH(NOW())<MONTH(DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2))),INT(YEAR(NOW())- ...

  10. python学习日记(包——package)

    简述——包 包是一种通过使用‘.模块名’来组织python模块名称空间的方式. 注意: 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都 ...