feign 服务启动后加载 避免第一次调用超时 及第一次调用耗时长

版本:feign-core 9.5.0   spring-cloud-starter-openfein 1.4.6

第一次调用耗时的原因-懒加载:1、spring mvc servlet;2、ribbon ;

设置:

1. #服务启动成功后立即加载servlet

spring:
   mvc:
    servlet:
      load-on-startup: 0

2、

ribbon:
  eager-load:
    enabled: true
    clients: order-center # 必须设置,设置哪个feign client 饥饿加载哪个,不设置则没有任何feign客户端会被饥饿加载eg:@FeignClient(value = "order-center")

3、如果出现feign调用超时,需要考虑 hystrix 和 ribbon的连接超时和读超时的设置,默认设置极易超时

ribbon超时设置的属性:
ReadTimeout: 
ConnectTimeout: 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
加上@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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值