Akka默认20s超时修改配置
問題現象:項目中調用第三方rest接口,耗時超過20s,連續請求5次,然后報超時失敗
定位分析: 我scala代碼中默認是5分鐘超時失敗,也沒有設置循環調用的地方,搜索了所有相關代碼和環境配置都沒有20s配置的地方,百思不得其解。通過查找資料發現,我們是通過spray框架對外提供rest接口和訪問外部信息。而akka有一套比較完善的超時機制設置,具體見文檔說明https://doc.akka.io/docs/akka-http/current/common/timeouts.html
于是,在akka.conf增加如下配置,特別注意,調用第三方rest,等于我們是客戶端,需要配置客戶端超時機制,定位問題時一直在服務端配置上修改嘗試,糾結為什么不生效,很囧~~
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
}
經驗總結:
1、接觸scala時間不長,框架都是前人搭建,雖然scala語言跟java很相似,對于簡單的代碼故障修修補補還是比較好應付,但是牽涉到一些架構方面的,還是得從源頭上理清,對系統進行全面認識理解,才能少走彎路。在最開始定位的時候一直以為是spray框架的相關配置,根本沒往akka上想,所以查找資料也繞了個圈。
2、對于小眾化的語言框架,百度、bing等能搜索到的資料有限,還是到官網上去查找拓展,更靠譜。
總結
以上是生活随笔為你收集整理的Akka默认20s超时修改配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: log4j2.xsml配置文件详细
- 下一篇: UG NX 12 草图曲线