問題タブ [consul]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - マイクロサービス: Spring クラウド アプリケーションの Zuul & consul
Zuul と Consul を使用して Spring クラウド マイクロサービス アプリケーションを作成しようとしています。
私のプロジェクトには 2 つのコンポーネントがあります。
Zuul を使用した api-gateway マイクロサービス
Hello world マイクロサービス (単純な hello world Rest Webservice)
APIゲートウェイのコードは次のとおりです。
pom.xml
アプリケーション.yml
ブートストラップ.yml
hello マイクロサービスのコードは次のとおりです。
bootstrap.yml: 春: アプリケーション: 名前: マイクロサービスの例 プロファイル: アクティブ: ネイティブ
しかし、api-gateway を開始すると、次の例外が発生しました。
dns - 他のノードから Consul DNS に接続できない
Consul Master を 192.168.1.191 にセットアップし、Agent を 192.168.1.198 にセットアップしました。
そしてdig
、Consul Masterでコマンドを試してみましたが、うまくいきました:
なんで?Consul は他のノードからのリクエストに対して動作していないようです。どんな助けでも大歓迎です。
しかし、dig
Consul Agent でコマンドを実行すると、タイムアウト メッセージが表示されました。
以下は、Consul Master での TCPDump コマンドの出力です。
nginx - Docker の NGINX と Consul-Template
EC2、AWS、Docker、Consul-Template、Consul、および NGINX を使用した一貫したサービス検出に問題があります。
複数のサービスがあり、それぞれが独自の EC2 インスタンスで実行されています。これらのインスタンスで、次のコンテナーを (この順序で) 実行します。
- cAdvisor(モニタリング)
- node-exporter (監視)
- Consul (エージェントモードで実行)
- 登録者
- 私のサービス
- nginx と consul-template の両方を実行するカスタム コンテナ
カスタム コンテナーには、次の Dockerfile があります。
app.conf ファイルは次のようになります。
すべてが完全に正常に起動するように見えますが、起動後のある時点 (まだ特定していません) で、consul-template は特定のサービスに使用できるサーバーがないと返すようです。これは、upstream
そのサービスのセクションにサーバーが含まれていないことを意味し、ログには次のように記録されます。
この後、NGINX はリクエストを受け付けなくなります。
明らかな何かが欠けていると確信していますが、一連のイベントなどについて精神的な結び目で自分自身を結びつけました。起こっている可能性があるのは、NGINX がクラッシュすることですが、consul-template がまだ実行されているため、Docker コンテナー再起動しません。コンテナー自体が再起動するか、NGINX だけが再起動するかは実際には気にしません。
誰か助けてくれませんか?