squbs-10.|squbs-10. 为阻塞API调用的阻塞Dispatcher
原文地址:The Blocking Dispatcher for Blocking API calls
这个话题并不讨论一般的dispatcher,而是关于特殊的squbs dispatcher配置。请查看Akka documentation 获得更多的dispatcher细节。
squbs提供了一个预设的dispatcher配置来使用阻塞调用。一般来说,这些用来同步调用数据库。这个reference.conf 定义的blocking-dispatcher如下:
blocking-dispatcher {
# Dispatcher 是基于事件的dispatcher的名称
type = Dispatcher
#使用哪种ExecutionService
executor = "thread-pool-executor"
thread-pool-executor {
# 控制最小factor-base core线程数
core-pool-size-min = 2
# 核心线程factor用来确定线程核心线程数,采用如下公式:
# ceil(available processors * factor)
# 结果为 core-pool-size-min和core-pool-size-ma之间
core-pool-size-factor = 3.0
# 最大的factor-based线程数
core-pool-size-max = 24
# 控制factor-based max 最小线程数
# Minimum number of threads to cap factor-based max number to
# (如果使用有界队列)
max-pool-size-min = 2
# 最大的线程数由计算 ceil(available processors * factor) 确定
# (如果使用有界队列)
max-pool-size-factor= 3.0
# 控制factor-based max 最大线程数
# (如果使用有界队列)
max-pool-size-max = 24
}
# 在线程跳向下一个actor之前,吞吐量定义了每个actor处理的最大消息量
# 设置为1则尽量的公平
throughput = 2
}如果actor需要使用blocking dispatcher,只需要如下配置actor:
【squbs-10.|squbs-10. 为阻塞API调用的阻塞Dispatcher】"/mycube/myactor" {
dispatcher = blocking-dispatcher
}
如果没有任何actor使用blocking-dispatcher,blocking-dispatcher将不会被初始化,也不会请求获取任何资源。**警告:**blocking-dispatcher 只能用在阻塞调用,不然性能会收到极大影响
推荐阅读
- 为什么你的路演总会超时()
- 知识
- 财商智慧课(六)
- 低头思故乡——只是因为睡不着
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 吃了早餐,反而容易饿(为什么?)
- 你有婚内虐待行为吗()
- Android中的AES加密-下
- ?【段子图】内裤为啥湿呢(想想好邪恶啊...)
- 孩子行为背后的秘密(2)胡老师讲座感悟