Skip to main content
Version: 2.6.0

SPI扩展设计

SPI 全称为 Service Provider Interface, 是 JDK 内置的一种服务提供发现功能, 一种动态替换发现的机制。

shenyu-spiApache ShenYu网关自定义的SPI扩展实现,设计和实现原理参考了DubboSPI扩展实现

注册中心扩展#

通过哪种方式实现服务的注册,当前支持ConsulEtcdHttpNacosZookeeper。注册中心的扩展包括客户端和服务端,接口分别为 ShenyuServerRegisterRepositoryShenyuClientRegisterRepository

监控中心扩展#

负责服务的监控,通过SPI加载具体实现,当前支持Prometheus ,服务接口是 MetricsService

负载均衡扩展#

从多个服务提供方中选择一个进行调用,当前支持的算法有HashRandomRoundRobin,扩展接口是 LoadBalance

RateLimiter扩展#

RateLimiter插件中,使用何种限流算法,当前支持ConcurrentLeakyBucketSlidingWindowTokenBucket,扩展接口是 RateLimiterAlgorithm

匹配方式扩展#

在添加选择器和规则时,使用哪种匹配方式,当前支持AndOr,扩展接口是 MatchStrategy

条件参数扩展#

在添加选择器和规则时,使用哪种条件参数,当前支持URIRequestMethodQueryPostIPHostCookieHeader,扩展接口是 ParameterData

条件策略扩展#

在添加选择器和规则时,使用哪种条件策略,当前支持MatchContainsEqualsRegexTimerAfterTimerBeforeExclude,扩展接口是 PredicateJudge