我正在尝试在我的示例应用程序中集成Hystrix CircuitBreaker。我有两个应用程序,一个表现为服务器,另一个作为客户端。 CircuitBreaker工作正常,我可以看到Hystrix.stream表单客户端。
现在我正在使用Turbine流在一个DashBoard中尝试多个客户端。
在服务器端,我添加了2个依赖项,如下所示:
spring-cloud-starter-turbine-stream
spring-cloud-starter-stream.rabbit
应用程序和注释@EnableTurbineStream。
在客户端,我添加了以下依赖项:
spring-cloud-starter-hystrix-stream
spring-cloud-starter-stream.rabbit
这两个应用程序都部署在Pivotal Cloud Foundry中,并绑定到了用于PCF的Rabbit Mq服务。
在客户端部署上,我将在下面看到例外:
java.io.IOException :null
Caused by : com.rabbitmq.client.ShutDownSignalException : channel error :protocol method : #method<channel.close><reply-code=406, reply-test=PRECONDITION-FAILED - equivalent arg 'type' for exchange 'spring.cloud.hystrix.stream' in vhost '' : receieved 'topic' but current is 'Direct', class-id=40, methid-id=10>
在点击Turbine服务器时,我得到了
data : {type : ping}
Management port on turbine server is set to -1.
客户端和服务器上是否需要任何MQ配置来在Rabbit MQ中推送Hystrix流?任何帮助将不胜感激。
答案 0 :(得分:0)
客户端错误告诉您,您正在尝试声明已存在但具有冲突类型的交换。您可以通过更改交换名称或仅删除旧名称来修复它。或者只是删除服务并在Cloud Foundry中重新创建它,