盛兴彩票- Hystrix与现有的Spring应用程序集成

我们介绍了Hystrix的基础知识以及它如何帮助构建容错和弹性应用程序。

有很多现有的Spring应用程序可以调用外部系统,这些系统可以从Hystrix中受益。不幸的是,为了集成Hystrix可能无法重写这些应用程序,但是在的帮助下,可以集成Hystrix的非侵入式方法

在本文中,我们将看看如何将Hystrix与盛兴现有的Spring应用程序集成。

让我们来看看应用程序的现有客户调用者,它调用了我们在前一篇文章中创建RemoteServiceTestSimulator

正如我们在上面的代码片段中看到的,invokeRemoteServiceWithOutHystrix方法负责调用RemoteServiceTestSimulator远程服务。当然,真实世界的应用程序不会这么简单。

为了演示如何整合Hystrix,我们将以该客户端为例。

要做到这一点,我们将定义一个Around建议,当invokeRemoteService得到执行时将会启动它

上述建议被设计为@HystrixCircuitBreaker注释的切入点执行around建议

现在让我们看看HystrixCircuitBreaker注释的定义

现在我们来看看RemoteServiceCommand。盛兴在示例代码中被实现为静态内部类,以便封装Hystrix调用逻辑:

可以看到Aspect组件的整个实现

一旦定义了方面,我们就可以用@HystrixCircuitBreaker来注释我们的客户端方法,如下所示,并且Hystrix会在每个对注释方法的调用时被激发:

下面的整合测试将展示Hystrix路线和非Hystrix路线之间的区别。
 

为了演示的目的,我们定义了两个方法执行路由,盛兴一个使用Hystrix,另一个不使用。
 

当测试执行时,您可以看到,没有Hystrix的方法调用将等待远程服务的整个执行时间,而Hystrix路由将会短路并在定义的超时之后抛出HystrixRuntimeException,在本例中为10秒。
 

我们可以为每个想要使用不同配置进行的远程服务呼叫创建一个方面。在下一篇文章中,我们将着眼于从项目开始就整合Hystrix。

本文中的所有代码都盛兴可以在存储库中找到

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.gdjxjy.com.cn/a/shengxingcaipiao/194.html