Sentinel icon indicating copy to clipboard operation
Sentinel copied to clipboard

注解支持解析origin和自定义resource name

Open majianbing opened this issue 4 years ago • 3 comments

这个注解功能已经实现,讨论下有没有必要合并进来。

1、被注解保护的资源,可以通过解析orgin方法提取出入参中的某个值作为资源标识。 2、被注解保护的资源,可以通过解析resource name的方法从入参中提取资源名称。

我们的场景: 注解可以灵活的定义资源名称和origin,给使用注解的业务系统提供了很大的灵活性;例如某个service的接口,提供给多个调用方(a/b/c),可以直接通过提取资源名称的方法,把resource绑定到对应的调用方上(serviceApi_a,serviceApi_b,serviceApi_c),分别对其进行限流规则配置。也可以通过解析orgin方法,统一为一个资源,分别配置不同的origin进行规则配置。

关于origin只在最外层生效和统一拦截器冲突问题: origin仅会在入口处生效,假设web系统有统一的filter处理入口请求并且加上了sentinel限流保护,那么注解中的origin也就不生效了。我是这么想的。

1、对于统一filter,可以制定统一的规范提取某个字段作为origin的标识。 2、让filter可配置开闭让用户选择;解决filter定义的统一origin提取规范对某些业务系统来说改造成本过高问题(比如业务系统有一些历史包袱,识别调用者身份的字段所处的位置千奇百怪) 3、注解支持了origin解析,同时具备了灵活性,未必所有的入口都需要限流保护。

majianbing avatar Jan 04 '21 12:01 majianbing

是没有这个需求嘛,细粒度的限流

majianbing avatar Jan 15 '21 03:01 majianbing

有这个需求: 比如现在有一个接口: /api/queryResource

针对调用方A系统,这个接口要限流QPS为100

针对B系统,这个接口要限流QPS500.。。

这种场景,目前的注解@SentinelResource怎么实现呢

hlcen66 avatar Jul 07 '22 05:07 hlcen66

希望官方能提供此功能。紧急需要。

hlcen66 avatar Jul 07 '22 05:07 hlcen66