Dubbo中的线程池——自适应扩展点应用之一

Posted 池塘里洗澡的鸭子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo中的线程池——自适应扩展点应用之一相关的知识,希望对你有一定的参考价值。

  之前介绍了dubbo中SPI扩展点之自适应,那么线程池就是自适应扩展点的应用体现。

  dubbo中已实现的线程池扩展点有:

    

   以fixed为ID的FixedThreadPool示例分析:

  1、FixedThreadPool的UML图如下:

      

  2、查看ThreadPool接口:

    

   下面以FixedThreadPool为基础实现自定义的线程池扩展:

  1、线程池实现, 这里主要是基于对 FixedThreadPool 中的实现做扩展出线程监控的部分:
    

   2、SPI声明,创建文件 META-INF/dubbo/org.apache.dubbo.common.threadpool.ThreadPool

    

     

   3、在服务提供方项目引入该依赖

    

   4、在服务提供方项目中设置使用该线程池生成器
    

    为什么这样写呢?前面查看ThreadPool接口的时候,通过@Adaptive注解已经明确key值为threadpool。

  5、主执行程序多次发起请求,查看该线程池是否在服务端生效:

    消费端未执行前:

    

    消费端执行后:

    

 

   

  上述主程序中没有任何与WatchingThreadPool类直接或间接的调用,那么这个扩展点是如何被调用的呢?后续主题文章介绍。

 

 

 

 

 

 

以上是关于Dubbo中的线程池——自适应扩展点应用之一的主要内容,如果未能解决你的问题,请参考以下文章

线程池那些事之Dubbo线程池设计

线程池动态自适应变化

Dubbo 线程池源码解析

简历写着熟悉 Dubbo,居然连 Dubbo 线程池监控都不知道?

为什么一段看似正确的代码会导致DUBBO线程池被打满

线程池拒绝策略详解