加上@Transactional后feign远程调用超时
时间: 2023-10-12 17:06:08 浏览: 152
Java注解@Transactional事务类内调用不生效问题及解决办法
加上@Transactional后,feign远程调用超时的问题可能与事务的提交时间有关。一旦使用@Transactional注解,Spring会将整个方法包装在一个事务中,这意味着如果其中的某个feign远程调用耗时较长,整个事务也会被延长。因此,如果feign远程调用存在超时问题,可能会导致事务无法在规定时间内完成提交。
为了解决这个问题,有几种方法可以尝试:
1. 调整事务的超时时间:可以通过在@Transactional注解中设置timeout属性来调整事务的超时时间,以适应feign远程调用的耗时。
2. 异步处理:可以将feign远程调用改为异步处理,这样可以避免阻塞主线程。可以使用Spring提供的@Async注解将远程调用方法标记为异步执行。
3. 使用独立的事务管理:可以考虑将feign远程调用的方法放在独立的事务管理中,而不将其包含在主事务中。可以使用编程式事务手动控制事务范围,而不使用声明式事务@Transactional注解。
4. 调整feign客户端的超时时间:可以通过配置feign客户端的连接超时时间和读取超时时间,来提高feign远程调用的稳定性。
综上所述,加上@Transactional后feign远程调用超时的问题可能是由于事务的提交时间过长导致的。可以通过调整事务超时时间、使用异步处理、使用独立的事务管理或者调整feign客户端的超时时间来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Transactional 事务问题引发的fegin调用超时time out](https://blog.csdn.net/weixin_46063176/article/details/117999954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [大意了,使用@Transactional竟然出现了长事务,导致生产事故!](https://blog.csdn.net/qq_34162294/article/details/121571689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文