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


    相关文章:

    1. Apache ShenYu网关初体验

    前言

    在上节我们把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-> 缓存插件

  • 相关阅读:
    多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
    JavaScript快速入门
    前端跨界面之间的通信解决方案
    小程序 wxml2canvas开发文档
    javaIO流02:IO流原理及流的分类
    Go函数介绍与一等公民
    OS Audit file could not be created; failing after 6 retries
    开题报告怎么写?-案例+模板保姆级)
    计算机视觉与深度学习实战,Python工具,深度学习的视觉场景识别
    conan使用包以及管理(2)
  • 原文地址:https://blog.csdn.net/weixin_40972073/article/details/126576845