dubbo:protocol
threadpool 和 threads
threadpool 表示线程池类型。其值可以是 “fixed” 或 “cached”。默认值:fixed
fixed 表示线程池启动时就创建了固定大小的线程数,不做任何伸缩。
其创建原理与java内置的 Executors.newFixedThreadPool() 相同。
相关dubbo代码:com.alibaba.dubbo.common.threadpool.support.fixed.FixedThreadPool
cached 表示线程池是可伸缩的,线程空闲时间达到阈值时会被回收。这个阈值默认是1分钟。
其创建原理与java内置的 Executors.newCachedThreadPool() 相同。
相关dubbo代码:com.alibaba.dubbo.common.threadpool.support.cached.CachedThreadPool
对于刚开始性能调优的dubbo服务来说,“默认fixed线程池+200线程”的配置往往是最先需要优化的点。
一旦并发请求数超过200,就会出现异常“Thread pool is EXHAUSTED”。
另,线程池的类型选择也应遵循具体业务场景。
如果请求频繁,cached 意义也不会很大,因为线程根本没有空闲后被回收的机会。
如果请求不频繁,fixed 类型的线程池中大量线程空闲在那也浪费资源
dispatcher
d