我们知道Hystrix会对请求进行封装,然后管理请求的调用,从而实现断路器等多种功能。

Hystrix提供了两种隔离模式来进行请求的操作:

一种是信号量 一种是线程隔离

信号量:

则Hystrix在请求的时候会获取到一 个信号量,如果成功拿到,则继续进行请求,请求在一 个线程中执行完毕。

线程隔离

Hystrix会把请求 放入线程池中执行,这时就有可能产生线程的变化,从 而导致线程1的上下文数据在线程2里不能正常拿到。

新建请求接口和本地线程持有对象

建立一个ThreadLocal来保存用户的信息,通常在 微服务里,会把当前请求的上下文数据放入本地线程变 量,便于方便使用及销毁,
Hystrix线程传递
这里定义一个接口,做两件事:
1)请求入口打印当前线程ID,并利用上面的 ThreadLocal放入用户信息。
2)为了兼容其他情况,在使用Feign调用的时候, 通常会使用RequestContextHolder拿到上下文属性。

Hystrix线程传递

Hystrix推荐配置

Hystrix线程传递
Hystrix线程传递

相关文章:

  • 2021-07-23
  • 2022-12-23
  • 2021-06-06
  • 2021-12-20
  • 2022-02-16
  • 2022-01-06
  • 2021-07-07
  • 2021-10-10
猜你喜欢
  • 2021-09-25
  • 2021-09-12
  • 2022-02-24
  • 2022-12-23
  • 2021-11-08
  • 2021-05-30
  • 2022-01-06
相关资源
相似解决方案