Dubbo ->线程模型以及线程策略
使用NettyServer两级线程池
EventLoopGroup(boss): 接收客户端的链接请求,将TCP三次握手的连接分发给EventLoopGroup(worker),其中boss,worker为IO线程;
若逻辑可迅速完成,则建议直接在IO线程上处理,无需进入线程池调用操作;
否则的话建议转发给业务线程池处理;
| 线程模型 | 描述 |
|---|---|
| all | 全部请求转发到业务线程池 |
| direct | 全部请求在IO线程上完成 |
| execution | 请求响应事件由业务线程处理;响应,连接,断开,心跳事件于IO线程 |
| message | 请求响应事件于业务线程池;其他事件IO线程 |
| connection | 连接,断开事件以队列方式于IO线程执行;其他转发至业务线程中 |
自定义线程模型
1.

2.



Dubbo线程池策略
| 策略 | 描述 |
|---|---|
| FixedThreadPool | 具有固定线程数的线程池 |
| LimitedThreadPool | 池中线程个数随着需要动态增加,但不会超过某一阈值;且空闲线程不会被回收 |
| EagerThreadPool | 当池中所有线程均处于忙碌状态时,会创建新线程 |
| CachedThreadPool | 创建一个自适应线程池,当线程空闲1min即回收该线程,新请求来就又创建新线程 |
自定义线程策略
1.

2.

3.

本文深入探讨了Dubbo的线程模型,包括NettyServer的两级线程池机制,如boss线程组接收连接,worker线程组处理业务。介绍了不同线程模型如all、direct、execution、message和connection的处理方式。此外,还分析了Dubbo的线程池策略,如FixedThreadPool、LimitedThreadPool、EagerThreadPool和CachedThreadPool,以及它们在处理任务和资源管理上的特点。对于高级用户,文章也提到了自定义线程模型和策略的可能性。

1330

被折叠的 条评论
为什么被折叠?



