微服务和数据库

Tuo*_*nen 6 database cloud docker microservices docker-swarm

在微服务架构中(更确切地说,在诸如docker swarm之类的分布式环境中)部署数据库的最佳实践是什么?微服务原则指出,每个服务都应该是无状态的以实现扩展。由于数据库显然处于一种状态,因此它应该位于集群外部的固定位置,在初始化集群之前进行部署和配置吗?

我很困惑,因为所有docker compose示例都在服务定义中包括了数据库容器。但是事情并不是那么简单。在准备使用数据库之前,通常需要对其进行大量配置。此外,码头工人在协调服务启动顺序方面也很费力。

如果将数据库与服务一起部署到docker swarm确实是一个好习惯,那么如何确保关键数据的一致性和持久性?