read timeout exception

起因是导入数据时,因为从excel读取时根据数据库的字段类型进行翻译,把数据库number类型的字段都由字符串转成了数字类型。
但是我们要对数据做检核,需要用到java的正则表达式进行,公司自行封装了一套检核系统,仅支持字符串,所以这个数字类型传过去就会报类型错误。
于是我们又把数据处理了一下,先把值取出来判断类型

if(o instanceof Integer || …){
map.put(key,o.toString);
}

遍历map,如果是数字类型,我们就给他toString()。

然后再去试,这次不是类型错误了。

而是调用检核服务时出现超时,但查看对方日志,其实已经处理完成,耗时也才1000多毫秒。

对方报了个io的exception,大意就是在返回响应数据时被中断。

因为我们整体有配置了hystrix熔断器,但是我自己的服务是没有配置的啊?

于是我们把访问的数据量减少(批量),发现只使用1条数据时竟然正常的完成了!

思来想去就只有熔断的问题了,然后平台有人说,要是被熔断,就会有降级处理,返回说被熔断。

但我这边并没有啊?就很奇怪,我一开始好奇是不是对方返回的降级处理并没有按约定的格式。

但也不对啊,因为是直接抛异常,而且对方的熔断阈值明明是6000毫秒,我们这才1秒就断了。

后来打电话问主要负责人,让我们服务请求方也配置一下熔断时间,包括fegin启用hystrix,hystrix的配置,甚至还有ribbon的配置。

配置后,将超时时间也设置成6000毫秒,总算解决了这个问题,找个时间再复盘一下这个问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值