【问题标题】:Hystrix vs MultiThreadedHttpConnectionManagerHystrix 与 MultiThreadedHttpConnectionManager
【发布时间】:2015-04-13 05:08:28
【问题描述】:

我们有一个使用 SpringMVC+JSP 实现的网页。为了获取每个页面所需的数据,我们调用外部 API。步骤总结如下: - 请求到达控制器 - 调用 API 以检索数据 - 数据被添加到 JSP 视图模型并返回给用户。

要调用 API,我们正在使用 RestTemplate,使用 MultiThreadedHttpConnectionManager 初始化连接和读取超时。如果 API 不可用,RestTemplate 会抛出由网页控制器处理的异常。

最近我在阅读有关 Hytrix 的文章,似乎它被用于在系统之间发出请求。 我要求解释一下 Hytrix 如何帮助我们的系统以及如何集成它。

此外,API 实现从不同来源检索数据,其中之一是数据库。 Hytrix 也可以在数据库出现故障的情况下提供帮助吗?

提前致谢。

【问题讨论】:

    标签: java spring hystrix


    【解决方案1】:

    简答

    Hystrix 不会在系统之间发出请求。它包装您的请求代码以获取观察(超时、错误计数),并提供断路器来阻止您的应用程序再次创建调用“死”系统(远程服务甚至数据库)。

    答案稍长

    Hystrix 是您的服务和持久性/远程服务层之间的一个薄包装器(从现在开始只是持久性)(我认为这是最常见的用例)。不是直接从服务调用持久性,而是创建一个包含实际持久性调用的新 HystrixCommand。此命令是高度可定制的,并提供了开箱即用的超时和断路器机制。如果您的调用超时或产生很多异常,它将切换到您可以(并且应该)实现的后备实现。因此,在数据库停机的情况下(可能类似于使用缓存数据),回退是否也有帮助取决于您的用例。 作为副作用,您还可以获得调用的统计信息:错误计数、百分比、调用量...

    一个月前,我开始使用 HystrixCommands(和 Collapsers)和 made a blog post 关于 Hystrix 和一般的接口通信,这可能会给你额外的信息(或混淆;))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-10
      • 2014-10-29
      • 1970-01-01
      • 2023-03-27
      • 2016-12-08
      • 1970-01-01
      • 2014-05-20
      • 2017-07-19
      相关资源
      最近更新 更多