Hystrix用于包裹旧货客户的替代方案?

时间:2015-05-07 01:26:58

标签: java thrift hystrix

我正在考虑使用netflix的hystrix来绕过网络电话。

使用hystrix,您可以为需要使用的每个潜在RPC命令定义HystrixCommand<E>的子类。

我有一个apache thrift客户端设置,它有很多命令。除了必须为每个函数定义一个HystrixCommand类之外,还有其他的替代hystrix允许我轻松地将它包装在整个客户端吗?

4 个答案:

答案 0 :(得分:2)

Twitter的Finagle是Netflix的Hystrix的替代品。

Finagle根据需要为整个客户端创建一个RPC,当然Finagle会讨论Thrift以及Redis,MySQL,memcached等。

Finagle是使用Scala创建的,但它也可以与Java一起使用(以及所有JVM生态系统语言,如JRuby和Clojure)

当然,您甚至可以使用JVM以外的其他语言,因为Finagle可以使用Thrift和Thrift可用于许多其他语言和平台,如Go,C#甚至Objective-C,可以在iPhone或iPad中用作客户端而不是缓慢的Json / HTTP调用。

有关Finagle的更多信息 - &gt; https://twitter.github.io/finagle/guide/这里是Finagle Maven和Java的初始项目示例 - &gt; https://github.com/csaltos/hello-finagle-maven

答案 1 :(得分:1)

我也在为节俭客户寻找类似断路器的解决方案。将试用Phantom(https://github.com/flipkart/phantom),它正在为hystrix提供一个节俭代理。

答案 2 :(得分:0)

在我正在开发的项目中,我有数百种不同类型的集成,我想要一个通用的解决方案,允许我将断路器应用于其中任何一个。为此,我使用了org.springframework.aop.framework.ProxyFactory,以及一个自定义类,其中包含实现HystrixCommand的{​​{1}}。但是,任何动态代理实现都应该有效。

答案 3 :(得分:0)

您可能想看看resilience4j

  

在Hystrix中,对外部系统的调用必须包装在HystrixCommand中。相比之下,该库提供了高阶函数(装饰器),以使用断路器,速率限制器或隔板来增强任何功能接口,lambda表达式或方法引用。