我正在学习Docker Swarm模式,我设法在本地创建一个带有Web应用程序和Postgresql数据库的Swarm.我可以扩展它们,我看到Swarm创建了副本.
我想我理解Docker Swarm如何能够load balance regular web servers,但它如何与数据库容器一起开箱即用?
在Swarm上下文之外,通常数据库有their own ways以插件或扩展产品(如MySQL cluster)的形式处理复制.像Cassandra这样的其他数据库直接在其产品中构建了复制.
在Swarm上下文中,我们是否还需要依赖这些数据库插件和功能?
处理数据库容器副本之间数据一致性的预期模式是什么?
我知道这是一个非常开放的问题,但Docker的文档也是非常开放的,我似乎无法找到任何具体的内容.
它没有.
这里有一个很好的Swarm服务描述:How services work(强调我的)
When you deploy the service to the swarm,the swarm manager accepts your service definition as the desired state for the service. Then it schedules the service on nodes in the swarm as one or more replica tasks.
Swarm不知道任务内部是什么,它只知道它有多少个实例,这些实例是否正在通过它们的健康检查,以及是否有足够的它们来满足您给出的任务定义.这个和数据库副本之间的重叠这个词有点不幸,但它们是不同的概念.
处理数据库容器副本之间数据一致性的预期模式是什么?
您正在设置数据复制.这些可能是一个好的起点
> How to Set Up PostgreSQL for High Availability and Replication with Hot Standby
> PostgreSQL Replication Example