Hystrix 如何与 Eureka 通信?
How Hystrix communicate with Eureka?
我看过很多项目示例,其中同时使用了 Hystrix 和 Eureka。
如果有人能向我解释他们是如何沟通的,那就太好了。
也许这是一个错误的构建问题,但我想知道为什么项目上同时存在hystrix和eureka。
Eureka 和 Hystrix 是两种不同的服务,均由 Netflix 开发。
Eureka
提供某种 elastic load balancer
。它有一个服务器部分(客户端注册的地方)和一个客户端部分。客户端通过发送心跳在服务器中注册自己,同时也从服务器获取注册信息,以便知道它需要的服务(其他客户端)位于何处(因为客户端也可以是服务)。查看 eureka wiki 以获得更好的解释。
另一方面,Hystrix
是 Circuit Breaker Pattern
的实现(如果您不知道这是什么,请立即购买 Release It
这本书)。它基本上提供了一种通过包装来控制 "expensive" 调用(通常是远程系统)的方法。如果远程系统不可用,或者调用时间太长,Hystrix 将立即为您提供 "failure" (或配置的回退)响应,而不是让您阻塞等待不会到来的响应。 hystrix page 解释得更好。
我看过很多项目示例,其中同时使用了 Hystrix 和 Eureka。 如果有人能向我解释他们是如何沟通的,那就太好了。 也许这是一个错误的构建问题,但我想知道为什么项目上同时存在hystrix和eureka。
Eureka 和 Hystrix 是两种不同的服务,均由 Netflix 开发。
Eureka
提供某种 elastic load balancer
。它有一个服务器部分(客户端注册的地方)和一个客户端部分。客户端通过发送心跳在服务器中注册自己,同时也从服务器获取注册信息,以便知道它需要的服务(其他客户端)位于何处(因为客户端也可以是服务)。查看 eureka wiki 以获得更好的解释。
Hystrix
是 Circuit Breaker Pattern
的实现(如果您不知道这是什么,请立即购买 Release It
这本书)。它基本上提供了一种通过包装来控制 "expensive" 调用(通常是远程系统)的方法。如果远程系统不可用,或者调用时间太长,Hystrix 将立即为您提供 "failure" (或配置的回退)响应,而不是让您阻塞等待不会到来的响应。 hystrix page 解释得更好。