博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo之线程模型(Dispatcher属性、ThreadPool属性)。
阅读量:6876 次
发布时间:2019-06-26

本文共 715 字,大约阅读时间需要 2 分钟。

hot3.png

事件处理线程说明

  • 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识。则直接在IO线程上处理更快,因为减少了线程池调度。
  • 但如果事件处理逻辑较慢,或者需要发起新的IO请求,比如需要查询数据库,则必须派发到线程池,否则IO线程阻塞,将导致不能接收其他请求。
  • 如果用IO线程处理事件,又在事件处理过程中发起新的IO请求,比如在连接事件中发起登录请求,会报“可能引发死锁”异常,但不会真死锁。

Dispatcher

  • all

所有消息都派发到线程池,包括请求、响应、连接事件、断开事件、心跳等。

  • direct

所有消息都不派发到线程池,全部在IO线程上直接执行。

  • message

只有请求响应消息派发到线程池,其他连接断开事件、心跳等消息,直接在IO线程上执行。

  • execution

只请求消息派发到线程池,不含响应,响应和其他连接断开事件、心跳等消息,直接在IO线程上执行。

  • connection

在IO线程上,将连接断开事件放入队列,有序逐个执行,其他消息派发到线程池。

ThreadPool

  • fixed

固定大小线程池,启动时建立线程,不关闭,一直持有。(缺省)

  • cached

缓存线程池,空闲一分钟自动删除,需要时重建。

  • limited

可伸缩线程池,但池中的线程只会增长不会收缩。(为避免收缩时突然来了大流量引起的性能问题)

配置如

  • <dubbo:protocol name="dubbo" dispatcher="all" threadpool="fixed" threads="100" />

 

转载于:https://my.oschina.net/xiaominmin/blog/2221857

你可能感兴趣的文章
【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
查看>>
C语言接口与实现实例
查看>>
含有汉字的固定字符由ZHS16GBK数据库导入到AL32UTF8的数据库
查看>>
php-fpm进程数优化
查看>>
iOS中如何对具有复杂依赖的SDK在真机上进行单元测试
查看>>
Mobile Web中URL设计问题
查看>>
core Animation之CAAnimationGroup(动画群组)
查看>>
重构实践:体验interface的威力(一)
查看>>
UILabel混合显示动画效果
查看>>
Java内存泄露
查看>>
窥探Swift编程之强大的Switch
查看>>
R语言学习路线图-转帖
查看>>
【导入导出】sqlldr 导入含有内嵌换行符的数据
查看>>
Linux中常用命令
查看>>
RDS最佳实践(四)—如何处理Mysql的子查询
查看>>
最大流:Dinic模板
查看>>
安卓开发中个人能力的进阶进程
查看>>
人工智能10年将有颠覆性改变
查看>>
探秘AOP实现原理
查看>>
单点登录(SSO)简介
查看>>