Akka默认20s超时修改配置

在使用Spray框架调用第三方REST接口时遇到超时问题,通过深入理解Akka超时机制并正确配置,成功解决高延迟问题。分享了从问题定位到解决方案的心路历程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题现象:项目中调用第三方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等能搜索到的资料有限,还是到官网上去查找拓展,更靠谱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值