gpt4 book ai didi

java - Hystrix 执行模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:21 25 4
gpt4 key购买 nike

我正试图绕过 Hystrix在阅读了他们的文档后,仍然对其使用模式有疑问。

首先,我不了解 用例 何时 使用他们的 异步 执行与他们的 Reactive 执行。我能看到的唯一区别是异步执行始终是非阻塞的,而 Reactive 既可以是阻塞的,也可以是非阻塞的。所以我想我真正的问题是:

  • 同步和阻塞响应式执行有什么区别?和
  • 异步和非阻塞响应式执行有什么区别?

最佳答案

假设您已将两个服务调用 A 和 B 包装为 HystrixCommand。您现在有三个选择:

使用.execute():纯同步调用。一旦结果到达,您调用该方法并继续您的程序。您的程序的总执行时间是两个调用的总和。您的程序的主要流程是非常线性的。

使用 .queue():立即为两个命令接收 Future。两个服务调用并行执行。然后使用 .get() 来检索结果。这些调用与阻塞,直到结果在那里。您的总执行时间比以前更快:您的执行时间将是最长服务调用的长度。当您想要合并两个服务的结果时使用它。尽管两个调用是并行执行的,但程序的主要流程仍然是线性的。

使用 .subscribe():立即为两个命令接收一个 Observable。两个服务调用并行执行。然后使用 .subscribe() 注册一个回调,以便在结果可用时对其进行操作。如果您不想合并结果并希望在服务 A 和 B 的结果到达后独立地使用react,这将非常有用。您的程序的主要流程不是线性的,而是响应式(Reactive)的:程序流程将在每个命令的回调内继续。

希望对你有帮助。

关于java - Hystrix 执行模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27066001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com