以下列出的是定義在 reference.conf
中的squbs配置:
squbs {
#squbs創(chuàng)建的actor system的名稱
actorsystem-name = "squbs"
# 優(yōu)雅關(guān)閉的超時(shí)時(shí)間
# 在繼承org.squbs.lifecycle.GracefulStopHelper特性的情況下,一個(gè)actor優(yōu)雅關(guān)閉的默認(rèn)超時(shí)時(shí)間
default-stop-timeout = 3s
# 一個(gè)額外的配置目錄來擴(kuò)展application.conf蚀乔。文件夾的地址相對(duì)于squbs進(jìn)程的工作文件夾烁竭。
external-config-dir = squbsconfig
# 一個(gè)額外的配置文件名列表,在 external-confi-dir中任何列表中的文件將會(huì)在Actor System初始化設(shè)置
# 加載的時(shí)候被加載吉挣。除此文件列表之外派撕, "application.conf" 將會(huì)被隱式加載婉弹。
external-config-files = []
}
default-listener {
# 所有的squbs監(jiān)聽攜帶"squbs.listener"類型
type = squbs.listener
# 在 cube's route聲明通過不同名稱綁定監(jiān)聽時(shí),為監(jiān)聽加入依賴腥刹。
# 只需要逗號(hào)分隔的名稱就可以了马胧,例如
# aliases = [ foo-listener, bar-listener ]
aliases = []
# 服務(wù)綁定特定的地址/接口汉买。默認(rèn)是0.0.0.0 為任何地址/接口
bind-address = "0.0.0.0"
# 是否為地址綁定使用全主機(jī)名稱
full-address = false
# 服務(wù)綁定的特定端口衔峰,默認(rèn)為8080
bind-port = 8080
# 監(jiān)聽是否使用HTTPS
secure = false
# HTTPS是否需要客戶端授權(quán)。 secure關(guān)閉蛙粘,這個(gè)配置不會(huì)讀取垫卤。
need-client-auth = false
# 提供任何的個(gè)性化的SSLContext?設(shè)置"default"以為著系統(tǒng)默認(rèn)出牧。
ssl-context = default
}
blocking-dispatcher {
# Dispatcher是基于事件調(diào)度器的名稱
type = Dispatcher
# 使用哪種類型的ExecutionService
executor = "thread-pool-executor"
thread-pool-executor {
# factor-based 限制的最小核心線程數(shù)
core-pool-size-min = 2
# 通過使用公式ceil(available processors * factor).穴肘,核心線程數(shù)factor用于確定核心線程數(shù)。
# 結(jié)果的大小在pool-size-min和core-pool-size-max之內(nèi)
core-pool-size-factor = 3.0
#控制的最大factor-based線程大小
core-pool-size-max = 24
# factor-based 限制最小的最大線程數(shù)
# (如果使用有界線程隊(duì)列)
max-pool-size-min = 2
# 最大線程數(shù)通過計(jì)算確定(如果使用有界線程隊(duì)列): ceil(available processors * factor)
max-pool-size-factor = 3.0
# actor-based 限制的最大線程數(shù)(如果使用有界線程隊(duì)列)
max-pool-size-max = 24
}
# Throughput 定義每個(gè)actor處理的最大消息量舔痕,在跳向下一個(gè)actor之前评抚。
# 設(shè)置為1盡可能公平。
throughput = 2
}
阻塞調(diào)度器(Blocking Dispatcher)
squbs的reference.conf
聲明了 blocking-dispatcher
用于阻塞 I/O調(diào)用伯复。這是一個(gè)標(biāo)準(zhǔn)的Akka調(diào)度器配置慨代。請(qǐng)查看dispatchers 獲得更多細(xì)節(jié)。
監(jiān)聽(Listeners)
一個(gè)監(jiān)聽器綁定一個(gè)端口啸如,這個(gè)端口的行為諸如安全侍匙,授權(quán)等。默認(rèn)的監(jiān)聽由squbs的 reference.conf
提供叮雳∠氚担可以通過提供application.conf
或在擴(kuò)展配置文件夾中的 application.conf
覆蓋。關(guān)于squbs如何讀取這些配置文件帘不,可以查看 Bootstrapping squbs
監(jiān)聽在配置文件的根級(jí)別上聲明说莫。這個(gè)名稱通常參照*-listener格式,但并不是必須的寞焙。 在監(jiān)聽條目內(nèi)的type
字段定義了這個(gè)條目為監(jiān)聽储狭。它必須設(shè)置為squbs.listener
。關(guān)于如何配置新的監(jiān)聽器來監(jiān)聽不同的端口棺弊,請(qǐng)參見上面的default-listener例子 晶密。
除非服務(wù)路由將自己附加到監(jiān)聽器,監(jiān)聽器是不會(huì)啟動(dòng)的模她。換句話說稻艰,僅僅聲明監(jiān)聽器不會(huì)導(dǎo)致監(jiān)聽器啟動(dòng),除非監(jiān)聽器有真正的用途侈净。
Pipeline
如果定義尊勿,一個(gè)默認(rèn)的pipeline將被安裝僧凤,對(duì)所有單個(gè)請(qǐng)求進(jìn)行預(yù)處理,對(duì)所有返回進(jìn)行后處理元扔。服務(wù)可以指定一個(gè)不同的pipeline或不指定躯保,這在Unicomplex & Cube Bootstrapping中有描述。應(yīng)用或者基礎(chǔ)設(shè)施可以實(shí)現(xiàn)他們自己的pipeline來預(yù)處理諸如打日志和跟蹤澎语。更多關(guān)于pipeline的細(xì)節(jié)描述請(qǐng)參見Streaming Pipeline.