开发者社区 > 云原生 > 正文

根据方法名的签名去设置,可不可以添加一个@SentinelResourceName,来直接设置?

目前SentinelDubboProviderFilter和SentinelDubboConsumerFilter获取方法的资源名称是DubboUtils#getResourceName 即根据方法名的签名去设置,可不可以添加一个@SentinelResourceName,来直接设置。

public static String getResourceName(Invoker invoker, Invocation invocation, Boolean useGroupAndVersion) { StringBuilder buf = new StringBuilder(64); String interfaceResource = useGroupAndVersion ? invoker.getUrl().getColonSeparatedKey() : invoker.getInterface().getName(); buf.append(interfaceResource) .append(":") .append(invocation.getMethodName()) .append("("); boolean isFirst = true; for (Class clazz : invocation.getParameterTypes()) { if (!isFirst) { buf.append(","); } buf.append(clazz.getName()); isFirst = false; } buf.append(")"); return buf.toString(); }

原提问者GitHub用户leilei2018

展开
收起
云上静思 2023-05-19 16:34:39 84 0
1 条回答
写回答
取消 提交回答
  • 使用注解的话,可以在代码里设置资源名称,但这样对代码有侵入性了。 各有利弊,看具体场景。

    有单独的注解支持@SentinelResource 参考wiki文档: https://github.com/alibaba/Sentinel/wiki/注解支持

    原回答者GitHub用户cdfive

    2023-05-19 22:44:10
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载