1

Consul を Service Discovery に使用しています。クライアントの起動時に NameResolver.start(Listener listener) でサーバーのリストを指定します。

  1. サービスプロバイダーとして参加した新しいサーバーを追加するにはどうすればよいですか (Consul で)
  2. ラウンド ロビンを使用しています。サーバーの1つが停止したとき。デッドサーバーにヒットし続けます
  3. UNAVAILABLE 例外で再試行するサンプルはありますか? クライアント側であきらめる前に、少なくとも一度は再試行したいだけです。

前もって感謝します

4

3 に答える 3

0

独自の LoadBalancer を作成しました。@Override pickTransport() を Consul から RoundRobin の正常な gRPC サーバーに送信します。

于 2016-12-28T05:53:45.813 に答える
0

サーバーのリストが (Consul で) 変更されNameResolver.Listener.onUpdate()たら、 を呼び出します。少なくとも 1 回は既に呼び出しているはずです。

ロード バランシングの実装と API は大規模なリワークを受けており、ラウンド ロビンが大幅に改善されるはずです。

于 2016-12-15T01:15:54.490 に答える