микро-сервисы и база данных: mongodb docker - как настроить контейнеры - PullRequest
0 голосов
/ 10 марта 2019

Я создаю приложение, используя архитектуру микро-сервисов, используя mongodb, nodejs и docker.

Я читал, что у каждого микросервиса должна быть своя собственная база данных, и я думаю, что каждый микросервис находится в отдельном контейнере. Итак, я думаю, 1 микро-сервис = 1 контейнер

Но как насчет их уважаемых баз данных, они также должны жить в одном и том же микро-сервисном контейнере? Таким образом, это будет 1 микро-сервис = 1 контейнер (с изображением 1mongo + изображением 1nodejs)

Или это больше похоже на 1micro-service = 1container (приложение) + 1container (база данных)

Я пытаюсь реализовать этот способ прямо сейчас, но каждый раз, когда я опускаю свой контейнер, объем удаляется ...

Так что мне интересно, как мне настроить свою базу данных и контейнеры для правильного применения архитектуры микро-услуг

Заранее спасибо за любые отзывы

1 Ответ

1 голос
/ 10 марта 2019

Вы должны запустить один сервис в как минимум в одном контейнере. В описываемой вами ситуации, в основном по тем причинам, которые вы описываете, обычно важно запускать базы данных в отдельных контейнерах (вам не нужно уничтожать и перезапускать вашу базу данных только потому, что вы обновили код приложения).

(Представьте, что вы работали только локально: ситуация аналогична тому, как ваше приложение запускает и останавливает базу данных самостоятельно. На первый взгляд, это немного сложнее с административной точки зрения, но если возникают проблемы с приложением или базой данных, или если вам нужно что-то масштабировать, или ... вы бы намного счастливее, напрямую управляя базой данных.)

Этот вопрос из Кубернетса имеет хорошую картину более высокого уровня: в этом вопросе есть полдюжины сервисов, плюс один из них имеет резервную базу данных, и каждый из них работает в отдельных контейнерах (в на этот вопрос отдельные Kubernetes Deployments / StatefulSets / Pods). Логически «служба B плюс его резервная база данных» могут быть единым целым, но вы должны развернуть две половины в отдельных контейнерах.

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