Akka默认20s超时修改配置
問(wèn)題現(xiàn)象:項(xiàng)目中調(diào)用第三方rest接口,耗時(shí)超過(guò)20s,連續(xù)請(qǐng)求5次,然后報(bào)超時(shí)失敗
定位分析: 我scala代碼中默認(rèn)是5分鐘超時(shí)失敗,也沒(méi)有設(shè)置循環(huán)調(diào)用的地方,搜索了所有相關(guān)代碼和環(huán)境配置都沒(méi)有20s配置的地方,百思不得其解。通過(guò)查找資料發(fā)現(xiàn),我們是通過(guò)spray框架對(duì)外提供rest接口和訪問(wèn)外部信息。而akka有一套比較完善的超時(shí)機(jī)制設(shè)置,具體見(jiàn)文檔說(shuō)明https://doc.akka.io/docs/akka-http/current/common/timeouts.html
于是,在akka.conf增加如下配置,特別注意,調(diào)用第三方rest,等于我們是客戶端,需要配置客戶端超時(shí)機(jī)制,定位問(wèn)題時(shí)一直在服務(wù)端配置上修改嘗試,糾結(jié)為什么不生效,很?chē)鍉~
spray.can {
? server {
? ? remote-address-header = on
? ? parsing.max-content-length = 20m
? ? idle-timeout = 4min
? ? request-timeout = 3min
? }
? client.idle-timeout = 4min
? client.request-timeout = 3min
}
經(jīng)驗(yàn)總結(jié):
1、接觸scala時(shí)間不長(zhǎng),框架都是前人搭建,雖然scala語(yǔ)言跟java很相似,對(duì)于簡(jiǎn)單的代碼故障修修補(bǔ)補(bǔ)還是比較好應(yīng)付,但是牽涉到一些架構(gòu)方面的,還是得從源頭上理清,對(duì)系統(tǒng)進(jìn)行全面認(rèn)識(shí)理解,才能少走彎路。在最開(kāi)始定位的時(shí)候一直以為是spray框架的相關(guān)配置,根本沒(méi)往akka上想,所以查找資料也繞了個(gè)圈。
2、對(duì)于小眾化的語(yǔ)言框架,百度、bing等能搜索到的資料有限,還是到官網(wǎng)上去查找拓展,更靠譜。
總結(jié)
以上是生活随笔為你收集整理的Akka默认20s超时修改配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: log4j2.xsml配置文件详细
- 下一篇: UG NX 12 草图曲线