2

サンプル アプリケーションに Hystrix CircuitBreaker を統合しようとしています。2 つのアプリがあり、1 つはサーバーとして、もう 1 つはクライアントとして動作します。CircuitBreaker は正常に動作しており、Hystrix.stream フォーム クライアントも確認できます。

現在、Turbine ストリームを使用して、1 つのダッシュボードで複数のクライアントを試しています。

サーバー側では、以下のように 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.

Rabbit MQ で Hystrix ストリームをプッシュするには、クライアントとサーバーで MQ 構成が必要ですか? どんな助けでも大歓迎です。

4

1 に答える 1

0

クライアント側のエラーは、既に存在する交換を宣言しようとしていることを示していますが、タイプが競合しています。交換名を変更するか、古いものを削除するだけで修正できます。または、単純にサービスを削除して、Cloud Foundry で再作成します。

于 2016-09-08T06:08:15.007 に答える