美文网首页
Dubbo线程池

Dubbo线程池

作者: 晚歌歌 | 来源:发表于2020-03-10 21:52 被阅读0次

Dubbo的线程模型与线程池策略

Dubbo默认的底层网络通讯使用的是Netty,服务提供方NettyServer使用两级线程池,其中 EventLoopGroup(boss) 主要用来接受客户端的链接请求,并把接受的请求分发给 EventLoopGroup(worker) 来处理,boss和worker线程组我们称之为IO线程。

如果服务提供方的逻辑能迅速完成,并且不会发起新的IO请求,那么直接在IO线程上处理会更快,因为这减少了线程池调度。

但如果处理逻辑很慢,或者需要发起新的IO请求,比如需要查询数据库,则IO线程必须派发请求到新的线程池进行处理,否则IO线程会阻塞,将导致不能接收其它请求。
Dubbo默认业务线程池为FIXED 200,且队列大小为0,拒绝策略为直接抛出拒绝异常

<!-- 配置时未指定线程相关配置 -->
<dubbo:protocol name="dubbo" port="${dubbo.port}" />
<!-- 则等同于以下配置 -->
<dubbo:protocol name="dubbo" dispatcher="all" threadpool="fixed" threads="200" />

所有消息都派发到业务线程池,这些消息包括请求/响应/连接事件/断开事件/心跳等,这些线程模型如下图:


image.png

相关文章

  • 3. Dubbo线程池模型

    dubbo有两种线程池,io线程池、业务线程池以netty作为io框架为例:boss线程池: 主要处理新的连接请求...

  • 信号量用法:锁

    用于dubbo线程池满的拒绝策略

  • dubbo线程池

    类型 dubbo的线程池类型通过SPI定义在org.apache.dubbo.common.threadpool....

  • Dubbo线程池

    Dubbo的线程模型与线程池策略 Dubbo默认的底层网络通讯使用的是Netty,服务提供方NettyServer...

  • Dubbo-线程池

    一、Dubbo中的线程池 提供了三种线程池的实现: fixed:固定大小的线程池,启动时建立,并且不会关闭,这也是...

  • [Dubbo]基础组件之ThreadPool

    介绍 ThreadPool 我们在开发过程中经常使用,java线程池的相关知识见线程池相关文章dubbo也不例外会...

  • Dubbo-Client线程池机制

    DUbbo-Client默认的线程池是CachedThreadPool 实际过程中可能会导致client线程堆积 ...

  • 03-Dubbo支持的协议

    1.Dubbo 1.1 Dubbo官方推荐的协议.1.2 本质:使用NIO和线程池进行处理.1.3 缺点:大文件传...

  • dubbo线程池exhausted

    在项目开发中使用dubbo的场景很多, 如果运气好, 会遇到以下异常 Request processing fai...

  • 23.Dubbo线程池策略

    此处的线程池就是上一章说的业务线程池,Dubbo对此也提供了一个ThreadPool的扩展SPI接口 FixedT...

网友评论

      本文标题:Dubbo线程池

      本文链接:https://www.haomeiwen.com/subject/aurgdhtx.html