ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

sentinel自定义扩展

2021-11-19 12:02:28  阅读:137  来源: 互联网

标签:自定义 扩展 System println context sentinel entry out


sentinel开源自alibaba,它和dubbo的扩展有一些类似,都是使用spi机制来实现自定义扩展。在进入资源流控时sentinel会加载所有ProcessorSlot实现类,并将其安装指定的属性插入的处理链位置。

@Spi(order = -1500)
public class DemoSlot extends AbstractLinkedProcessorSlot<DefaultNode> {

    @Override
    public void entry(Context context, ResourceWrapper resourceWrapper, DefaultNode node, int count, boolean prioritized, Object... args)
            throws Throwable {
        System.out.println("------Entering for entry on DemoSlot------");
        System.out.println("Current context: " + context.getName());
        System.out.println("Current entry resource: " + context.getCurEntry().getResourceWrapper().getName());

        fireEntry(context, resourceWrapper, node, count, prioritized, args);
    }

    @Override
    public void exit(Context context, ResourceWrapper resourceWrapper, int count, Object... args) {
        System.out.println("------Exiting for entry on DemoSlot------");
        System.out.println("Current context: " + context.getName());
        System.out.println("Current entry resource: " + context.getCurEntry().getResourceWrapper().getName());

        fireExit(context, resourceWrapper, count, args);
    }
}

上面是自定义扩展的一个简单实现,AbstractLinkedProcessorSlot是所有流控插件的基类,实现该基类的entry和exit即可完成简单的自定义扩展。

在添加完自定义实现后我们还需要在META-INF/services下新增一个com.alibaba.csp.sentinel.slotchain.ProcessorSlot文件,把实现类的全路径加进去,这样就可以通过spi机制来发现自定义扩展并加载到链路中

标签:自定义,扩展,System,println,context,sentinel,entry,out
来源: https://blog.csdn.net/u012477338/article/details/121377553

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有