postgresql - 生产中的DOCKER环境

标签 postgresql spring-boot docker redis microservices

我是 docker 的新手,刚开始玩它。截至目前,我在生产中对我的应用程序进行了以下设置:

服务器机器 1:运行 spring-boot 微服务

服务器机器 2:运行 redis

服务器机器 3:运行 postgres

如果我在服务器机器 1 中使用 docker 并将所有微服务作为容器运行,并将 redis 和 postgres 作为容器在服务器机器 1 中运行,这是正确的做法吗?或者我必须在所有服务器机器上运行 docker 并分别运行容器。

最佳做法是什么?

最佳答案

刚开始时,我建议在一台机器上完成所有工作。您的数据库容器可以使用卷将数据保存到机器本身。所以当你需要切换到不同的机器时,因为1台机器太慢,你可以轻松地转移你的数据库数据。当开始使用超过 1 台机器来运行 Docker 时,您可能希望使用像 Kubernetes 或 Docker swarm 这样的部署选项。这将简化在不同机器上设置环境的过程,因为它将由 Kubernetes 完成。

此外,当您的应用程序获得大量流量时,您可能希望切换到托管数据库,这些数据库由 GCP、AWS、Digitalocean 等服务提供。托管数据库将自动扩展、频繁更新和备份自动地。这会减轻你肩上的负担。我自己使用托管数据库。

我目前的建议是:使用 1 台机器,当您的应用程序获得更多流量时学习 Kubernetes。查看托管数据库(适用于 Redis 和 Postgres)。

关于postgresql - 生产中的DOCKER环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56349492/

相关文章:

java - 每个请求一个事务 - servlet 响应提交得太早

mysql - Docker MySQL没有输出

linux - Alpine Linux 中缺少 OpenJDK9

python - Django 应用程序在容器内部运行,但无法解析容器外部的数据库

postgresql - AWS ElasticBeanstalk amazon linux pg_config 与 psycopg2 错误

php - 如果密码包含空格,PDO 无法连接

java - 使用多 Maven 项目设置测试 Spring Boot 应用程序的问题

sql - 查询以在特定条件下重置以递增计数

postgresql - 在 Heroku 上将 Postgres 与 Sails.js 结合使用时出错

java - 将 querydsl 与 Spring Boot、Gradle 和 Idea 一起使用时,QClasses 中未解析的符号