Связь между микросервисами с помощью docker -compose - PullRequest
0 голосов
/ 19 июня 2020

У меня есть три микросервиса с базами данных MongoDB. Я пытаюсь связать контейнер микросервиса оценки с другими контейнерами, такими как player и game. Потому что для запроса REST API мой метод POST в контроллере очков репозиторием игрока и репозиторием игры проверяет, существуют ли игрок и игра, а затем публикует новый счет для существующего проигрывателя и игры. Я знаю, что Docker использует сеть по умолчанию для моих контейнеров и связывает их вместе, но когда я использую Postman для службы оценки по URL-адресу 192.168.99.100:8080/score POST-запроса, он не работает и показывает мне ошибку 500. в docker shell У меня нет ошибок и он хорошо работает для других сервисов, но когда я использую POST-запрос в Postman после этого В оболочке Docker у меня есть:

    player-docker          |        at org.apache.catalina.core.StandardHostValve.in
voke(StandardHostValve.java:139) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.catalina.valves.ErrorReportValve.i
nvoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.catalina.core.StandardEngineValve.
invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.catalina.connector.CoyoteAdapter.s
ervice(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.coyote.http11.Http11Processor.serv
ice(Http11Processor.java:373) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.coyote.AbstractProcessorLight.proc
ess(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.coyote.AbstractProtocol$Connection
Handler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.33.jar!/:9.0.3
3]
player-docker          |        at org.apache.tomcat.util.net.NioEndpoint$Socket
Processor.doRun(NioEndpoint.java:1594) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at org.apache.tomcat.util.net.SocketProcessorBas
e.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at java.util.concurrent.ThreadPoolExecutor.runWo
rker(ThreadPoolExecutor.java:1149) [na:1.8.0_252]
player-docker          |        at java.util.concurrent.ThreadPoolExecutor$Worke
r.run(ThreadPoolExecutor.java:624) [na:1.8.0_252]
player-docker          |        at org.apache.tomcat.util.threads.TaskThread$Wra
ppingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker          |        at java.lang.Thread.run(Thread.java:748) [na:1.8
.0_252]
player-docker          |

Я пробовал работать в сети docker -compose Но это не работает. Я проверил эти сайты: https://docs.docker.com/compose/networking/ и так далее, любые ссылки на эту и Docker документацию, но я не смог найти никакого решения. для уровня приложения микросервисов у меня нет никаких проблем, и все микросервисы работают хорошо, но на уровне Docker у меня есть проблемы, и служба оценки не работает. Docker -составить файл:

  version: "3.4"
services:
    player-docker:
        build:
            context: ./
            dockerfile: ./src/main/java/spring/multiple/mongo/project/player/DockerFile
        image: player
        container_name: "player-docker"
        restart: always
        ports:
            - 8080:8080
        depends_on:
            - player-container-db
    game-docker:
        build:
            context: ./
            dockerfile: ./src/main/java/spring/multiple/mongo/project/game/DockerFile
        image: game
        container_name: "game-docker"
        restart: always
        ports:
            - 8081:8080
        depends_on:
            - game-container-db
    score-docker:
        build:
            context: ./
            dockerfile: ./src/main/java/spring/multiple/mongo/project/score/Dockerfile
        image: score
        container_name: "score-docker"
        restart: always
        ports:
            - 8082:8080
        depends_on:
            - score-container-db
        links:
            - player-docker:player
            - game-docker:game
    player-container-db:
        image: mongo
        container_name: "player-container-db"
        volumes:
            - mongodata:/data/db
        ports:
            - 27017:27017
        restart: always
        environment:
            MONGODB_DATABASE: player-db
    game-container-db:
        image: mongo
        container_name: "game-container-db"
        volumes:
            - mongodata1:/data/db
        ports:
            - 27018:27017
        restart: always
        environment:
            MONGODB_DATABASE: game-db
    score-container-db:
        image: mongo
        container_name: "score-container-db"
        volumes:
            - mongodata2:/data/db
        ports:
            - 27019:27017
        restart: always
        environment: 
            MONGODB_DATABASE: score-db
volumes:
    mongodata:
    mongodata1:
    mongodata2:

application.properties:

 spring.data.mongodb.host=player-container-db
spring.data.mongodb.database=player-db
spring.data.mongodb.port=27017
spring.data1.mongodb.host=game-container-db
spring.data1.mongodb.database=game-db
spring.data1.mongodb.port=27017
spring.data2.mongodb.host=score-container-db
spring.data2.mongodb.database=score-db
spring.data2.mongodb.port=27017

журналы контейнера оценки:

  $ docker container logs fc14

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.6.RELEASE)

2020-06-18 19:16:15.056  INFO 1 --- [           main] s.multiple.mongo.project.A
pplication     : Starting Application v0.0.1-SNAPSHOT on fc141489d124 with PID 1
 (/score.jar started by root in /)
2020-06-18 19:16:15.078  INFO 1 --- [           main] s.multiple.mongo.project.A
pplication     : No active profile set, falling back to default profiles: defaul
t
2020-06-18 19:16:19.524  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.157  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 318ms. Found 1 Mong
oDB repository interfaces.
2020-06-18 19:16:20.164  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.231  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 63ms. Found 1 Mongo
DB repository interfaces.
2020-06-18 19:16:20.235  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.305  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 63ms. Found 1 Mongo
DB repository interfaces.
2020-06-18 19:16:20.310  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.380  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 58ms. Found 1 Mongo
DB repository interfaces.
2020-06-18 19:16:27.304  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.To
mcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-06-18 19:16:27.433  INFO 1 --- [           main] o.apache.catalina.core.Sta
ndardService   : Starting service [Tomcat]
2020-06-18 19:16:27.437  INFO 1 --- [           main] org.apache.catalina.core.S
tandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-06-18 19:16:28.069  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localh
ost].[/]       : Initializing Spring embedded WebApplicationContext
2020-06-18 19:16:28.070  INFO 1 --- [           main] o.s.web.context.ContextLoa
der            : Root WebApplicationContext: initialization completed in 12505 m
s
2020-06-18 19:16:32.302  INFO 1 --- [           main] org.mongodb.driver.cluster
               : Cluster created with settings {hosts=[game-container-db:27017],
 mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', ma
xWaitQueueSize=500}
2020-06-18 19:16:33.062  INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion            : Opened connection [connectionId{localValue:1, serverValue:1}] t
o game-container-db:27017
2020-06-18 19:16:33.126  INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
               : Monitor thread successfully connected to server with descriptio
n ServerDescription{address=game-container-db:27017, type=STANDALONE, state=CONN
ECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0,
maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, rou
ndTripTimeNanos=50027397}
2020-06-18 19:16:35.623  INFO 1 --- [           main] org.mongodb.driver.cluster
               : Cluster created with settings {hosts=[score-container-db:27017]
, mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', m
axWaitQueueSize=500}
2020-06-18 19:16:35.679  INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion            : Opened connection [connectionId{localValue:2, serverValue:1}] t
o score-container-db:27017
2020-06-18 19:16:35.696  INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
               : Monitor thread successfully connected to server with descriptio
n ServerDescription{address=score-container-db:27017, type=STANDALONE, state=CON
NECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0,
 maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, ro
undTripTimeNanos=3330296}
2020-06-18 19:16:36.093  INFO 1 --- [           main] org.mongodb.driver.cluster
               : Cluster created with settings {hosts=[player-container-db:27017
], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms',
maxWaitQueueSize=500}
2020-06-18 19:16:36.162  INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion            : Opened connection [connectionId{localValue:3, serverValue:1}] t
o player-container-db:27017
2020-06-18 19:16:36.178  INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
               : Monitor thread successfully connected to server with descriptio
n ServerDescription{address=player-container-db:27017, type=STANDALONE, state=CO
NNECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0
, maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, r
oundTripTimeNanos=2874952}
2020-06-18 19:16:36.411  INFO 1 --- [           main] org.mongodb.driver.cluster
               : Cluster created with settings {hosts=[score-container-db:27017]
, mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', m
axWaitQueueSize=500}
2020-06-18 19:16:36.448  INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion            : Opened connection [connectionId{localValue:4, serverValue:2}] t
o score-container-db:27017
2020-06-18 19:16:36.468  INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
               : Monitor thread successfully connected to server with descriptio
n ServerDescription{address=score-container-db:27017, type=STANDALONE, state=CON
NECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0,
 maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, ro
undTripTimeNanos=10136682}
2020-06-18 19:16:39.913  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoo
lTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-06-18 19:16:41.603  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.To
mcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-06-18 19:16:41.624  INFO 1 --- [           main] s.multiple.mongo.project.A
pplication     : Started Application in 29.929 seconds (JVM running for 39.828)

внутри контейнера оценки, когда я это сделаю ping к контейнеру игрока и контейнеру игры, все в порядке. Не знаю, в чем моя ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...