当前位置: 首页 > news >正文

猿创征文|Apache ShenYu网关插件介绍

相关文章:

  1. Apache ShenYu网关初体验

文章目录

  • 前言
  • 插件
    • Http Process
      • ContextPath插件
      • ModifyResponse插件
      • ParamMapping插件
      • Redirect插件
      • Request插件
      • Rewrite插件
    • Proxy
      • Divide插件
      • Dubbo插件
      • gRPC插件
      • Motan插件
      • Mqtt插件
      • Sofa插件
      • Spring Cloud插件
      • Tars插件
      • Websocket插件
    • 熔断限流
      • Hystrix插件
      • RateLimiter插件
      • Resilience4j插件
      • Sentinel插件
    • 权限认证
      • CryptorRequest插件
      • CryptorResponse插件
      • JWT插件
      • OAuth2插件
      • Sign插件
      • Waf插件
    • 可观测性
      • Logging插件
      • Logging-RocketMQ插件
      • Metrics插件
    • 通用组件
      • GeneralContext插件
    • Cache
      • 缓存插件

前言

在上节我们把Apache ShenYu网关集成到了微服务中,并简单使用了一下。网关的主要作用是进行流量控制和请求分发,而Apache ShenYu网关的流量控制是通过插件、选择器和规则来完成的,因此这节我们一起来学习下ShenYu网关的众多插件。

插件

Http Process

ContextPath插件

插件名称:
上下文插件
适用场景:
不同的服务可以通过设置不同的上下文路径来做服务的流量治理
插件功能:

  • 设置服务的上下文路径
  • 在接口调用的时候插件统一给服务的接口地址加上前缀

插件使用:
image.png

使用详见官方文档:插件合集-> Http Process-> Context Path 插件

ModifyResponse插件

插件名称:
响应修改插件
适用场景:
用来对响应进行修改
插件功能:
用来对响应进行修改
插件使用:
image.png

使用详见官方文档:插件合集-> Http Process-> ModifyResponse插件

ParamMapping插件

插件名称:
请求参数修改插件
插件功能:
用来对请求参数进行修改
插件使用:
image.png

使用详见官方文档:插件合集-> Http Process-> ModifyResponse插件

Redirect插件

插件名称:
重定向插件
插件功能:
网关在对目标服务进行代理调用的时候,允许用户使用redirect插件来重定向请求
插件使用:
image.png

使用详见官方文档:插件合集-> Http Process-> Redirect插件

Request插件

插件功能:
允许用户使用request插件对请求参数、请求头以及Cookie来添加、修改、移除请求头
插件使用:
image.png

使用详见官方文档:插件合集-> Http Process-> Request插件

Rewrite插件

插件功能:
允许用户使用rewrite重写请求路径
插件使用:
image.png

使用详见官方文档:插件合集-> Http Process-> Rewrite插件

Proxy

Divide插件

插件功能:
处理http协议请求;支持流量治理,如A/B测试、灰度测试;服务负载均衡;接口超时时间设置
插件使用:
image.png
image.png

使用详见官方文档:插件合集-> Proxy-> Rewrite插件

Dubbo插件

插件功能:
顾名思义,用来处理apache dubbo和alibaba dubbo协议
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> Dubbo插件

gRPC插件

插件功能:
顾名思义,用来gRPC协议请求的插件
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> gRPC插件

Motan插件

插件功能:
处理motan协议的插件
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> Motan插件

Mqtt插件

插件功能:
处理mqtt协议的插件
插件使用:

  • 当前 MQTT 协议实现为 3.1 版本,实现的标识值为 connect、publish、subscribe、unsubscribe、disconnect,以及 QoS 0。
  • 缺少 retain、Qos(1,2) 实现,以及集群模式。

使用详见官方文档:插件合集-> Proxy-> Mqtt插件

Sofa插件

插件功能:
处理sofa协议的插件
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> Sofa插件

Spring Cloud插件

插件功能:
处理Spring Cloud 框架的http协议;灰度流量控制
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> Spring Cloud插件

Tars插件

插件功能:
处理tars协议的插件
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> Tars插件

Websocket插件

插件功能:
处理websocket协议的插件
插件使用:
image.png

使用详见官方文档:插件合集-> Proxy-> Websocket插件

熔断限流

Hystrix插件

插件功能:

  • 熔断流量
  • 保护网关代理的服务
  • 隔离模式支持 thread 和 semaphore

插件使用:
image.png

使用详见官方文档:插件合集-> 熔断限流-> Hystrix插件

RateLimiter插件

插件功能:
基于redis进行流量控制
插件使用:
image.png

使用详见官方文档:插件合集-> 熔断限流-> RateLimiter插件

Resilience4j插件

插件功能:
使用Resilience4j为网关提供限流与熔断
插件使用:
image.png

使用详见官方文档:插件合集-> 熔断限流-> Resilience4j插件

Sentinel插件

插件功能:
使用sentinel为网关提供限流与熔断
插件使用:
image.png

使用详见官方文档:插件合集-> 熔断限流-> Sentinel插件

权限认证

CryptorRequest插件

插件功能:
cryptorRequest 插件通过 fieldNames 去匹配 requestBody 里面的参数进行 解密 处理,替换当前 requestBody 内容
插件使用:
image.png

使用详见官方文档:插件合集-> 权限认证-> CryptorRequest插件

CryptorResponse插件

插件功能:
CryptorResponse 插件通过 fieldNames 去匹配 responseBody 里面的参数进行 加密 处理,替换当前 fieldNames 对应内容
插件使用:
image.png

使用详见官方文档:插件合集-> 权限认证-> CryptorResponse插件

JWT插件

插件功能:
提供网关统一鉴权,兼容 OAuth2.0
插件使用:
image.png

使用详见官方文档:插件合集-> 权限认证-> JWT插件

OAuth2插件

插件功能:
OAuth2 插件使用 Webflux OAuth2 实现,用于支持 OAuth 协议
插件使用:
image.png

使用详见官方文档:插件合集-> 权限认证-> OAuth2插件

Sign插件

插件功能:
用来对请求进行签名认证
插件使用:
image.png
image.png

使用详见官方文档:插件合集-> 权限认证-> Sign插件

Waf插件

插件功能:
Waf 插件,是网关的用来对流量实现防火墙功能的核心实现
插件使用:
image.png

使用详见官方文档:插件合集-> 权限认证-> Waf插件

可观测性

Logging插件

插件功能:
请求日志记录插件,通过logback或者log4j收集请求的url,请求头,请求体,响应信息和响应体,并将请求信息存储在本地。
适用场景:
开发时调试或者线上排查问题等情况下,需要在网关侧查看本次请求在转发过程中的相关信息,如请求头、请求参数或响应头、响应体等。
插件使用:
image.png

使用详见官方文档:插件合集-> 可观测性-> Logging插件

Logging-RocketMQ插件

插件功能:
Apache ShenYu 网关接收客户端请求,向服务端转发请求,并将服务端结果返回给客户端.网关可以记录下每次请求对应的详细信息。比如: 请求时间、请求参数、请求路径、响应结果、响应状态码、耗时、上游IP、异常信息等待。Logging-RocketMQ插件便是记录访问日志并将访问日志发送到RocketMQ集群的插件。
插件使用:
image.png
image.png

使用详见官方文档:插件合集-> 可观测性-> Logging-RocketMQ插件

Metrics插件

插件功能:
Metrics插件插件是网关用来监控自身运行状态(JVM相关),请求的响应迟延,QPS、TPS等相关metrics。
插件使用:
image.png
image.png

使用详见官方文档:插件合集-> 可观测性-> Metrics插件

通用组件

GeneralContext插件

插件功能:
Apache ShenYu 网关在对目标服务调用的时候,还容许用户使用 generalContext 插件在本次请求中通过读取header,进行服务上下文参数传递。
插件使用:
image.png

使用详见官方文档:插件合集-> 通用组件-> GeneralContext插件

Cache

缓存插件

插件功能:
Cache插件能够缓存目标服务的结果,允许用户配置缓存结果的失效时间。
适用场景:

  • 数据不会频繁更新,而且需要大量调用的场景。
  • 对于数据一致性要求不高的场景。

插件使用:
image.png
image.png

使用详见官方文档:插件合集-> Cache-> 缓存插件

相关文章:

  • 全志V853开发板开发进阶——GPADC
  • 表单(非常非常重要)
  • 【JavaScript】一文了解JS的闭包
  • 2022前端vue面试题
  • docker相关试题
  • python 之名称空间与作用域
  • python之面向过程编程思想与匿名函数及其应用
  • docker 之Dockerfile
  • python之logging 模块(简洁版)
  • Docker 搭建 Redis Cluster 集群环境
  • Docker 容器编排利器 Docker Compose
  • Docker Swarm 集群环境搭建及弹性服务部署
  • Docker Compose 搭建 Redis Cluster 集群环境
  • 计算机初识
  • 计算机硬件五大单元
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 「面试题」如何实现一个圣杯布局?
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 345-反转字符串中的元音字母
  • Angular数据绑定机制
  • classpath对获取配置文件的影响
  • CSS 三角实现
  • Cumulo 的 ClojureScript 模块已经成型
  • Django 博客开发教程 16 - 统计文章阅读量
  • es6--symbol
  • laravel 用artisan创建自己的模板
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SSH 免密登录
  • vue中实现单选
  • webpack+react项目初体验——记录我的webpack环境配置
  • 数据仓库的几种建模方法
  • 微服务核心架构梳理
  • 我是如何设计 Upload 上传组件的
  • 树莓派用上kodexplorer也能玩成私有网盘
  • #define用法
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (初研) Sentence-embedding fine-tune notebook
  • (转)LINQ之路
  • (轉貼) UML中文FAQ (OO) (UML)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .NET 读取 JSON格式的数据
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net中应用SQL缓存(实例使用)
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ linux ] linux 命令英文全称及解释
  • [.net]官方水晶报表的使用以演示下载
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [C++]拼图游戏
  • [cb]UIGrid+UIStretch的自适应