2

私は、マイクロサービスを実行するための一般的なユースケースであると私が信じていることを解決しようとしています。この場合、春のクラウド アプリケーションで領事をテストしています。私は 2 つの異なる方法で領事館をテストしようとしています。1 つは Docker コンテナーで実行され、もう 1 つは Docker ホスト マシンで実行されます。次に、いずれかの領事の例と対話するスプリング クラウド コンテナーを開始しようとしています。

spring クラウド アプリケーションが docker コンテナーとして実行されている場合、spring クラウド アプリケーションを consul と通信させることができませんでした。spring クラウド アプリケーションをホスト ネットワーク モードで実行すると、localhost ポートを解決できるため機能しますが、イメージの複数のインスタンスを実行したい場合、これは受け入れられるソリューションではありません。

両方のサービスをコンテナーとして実行する場合の docker compose ファイルの例を以下に示します。ここでは、環境変数を使用してスプリング クラウドにコンサル uri を設定しようとしていますが、さまざまな構成を使用して機能させることができませんでした。これらの機能が連携して動作する例を誰かが指摘できれば、非常に役立ちます。

 consul1:
  image: progrium/consul
  ports:
    - "8400:8400"
    - "8500:8500"
    - "8600:53/udp"
    - "8600:53/tcp"
  environment:
      GOMAXPROCS: 100
      entrypoint: "/bin/consul"
      hostname: consul
      command: agent -log-level=debug -server -config-dir=/config -bootstrap -ui-dir /ui

simpletest:
    build: simpletest
    hostname: simpletest
    environment:  
      JAVA_OPTS: "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n -Dspring.cloud.consul.host=consul1"
    ports:
     - 39041:7051
     - 39052:7055
#     d2fdockerroot_consul1_1 consul
#    links:
#     - consul1
4

2 に答える 2

4

ここに醸造所システムの例があります - https://github.com/spring-cloud-samples/brewery。ファイルの 1 つは、CONSUL の docker-compose ファイルです。

https://github.com/spring-cloud-samples/brewery/blob/master/docker-compose-CONSUL.yml

コードベース内にあるすべてのapplication-consul.yamlファイルを調べて、Spring Boot アプリを設定して consul と通信する方法を確認してください。

例: https://github.com/spring-cloud-samples/brewery/blob/master/aggregating/src/main/resources/application-consul.yaml

問題が発生した場合は、ここに書き込むか、spring-cloud gitter https://gitter.im/spring-cloud/spring-cloudにアクセスしてください

于 2015-12-23T15:57:35.077 に答える