Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Docker Swarm与数据:共享卷vs群集vs单个实例_Database_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Docker_Redis_Docker Swarm - Fatal编程技术网 elasticsearch,docker,redis,docker-swarm,Database,elasticsearch,Docker,Redis,Docker Swarm" /> elasticsearch,docker,redis,docker-swarm,Database,elasticsearch,Docker,Redis,Docker Swarm" />

Database Docker Swarm与数据:共享卷vs群集vs单个实例

Database Docker Swarm与数据:共享卷vs群集vs单个实例,database,elasticsearch,docker,redis,docker-swarm,Database,elasticsearch,Docker,Redis,Docker Swarm,我在Docker Swarm上迈出了第一步,我想知道如何处理使用持久数据的服务,如redis、elasticsearch或数据库 我找到了很多关于如何使用docker swarm配置redis/elasticsearch/数据库集群的教程,但是使用共享存储不是更容易吗?例如,我使用Azure,因此我simpy可以使用单个Azure文件存储作为redis/elasticsearch/数据库卷,并让我的所有节点装载此文件存储。 这是一种可接受的方法,还是存在一些明显的缺点(例如,当两个或多个数据库实

我在Docker Swarm上迈出了第一步,我想知道如何处理使用持久数据的服务,如redis、elasticsearch或数据库

我找到了很多关于如何使用docker swarm配置redis/elasticsearch/数据库集群的教程,但是使用共享存储不是更容易吗?例如,我使用Azure,因此我simpy可以使用单个Azure文件存储作为redis/elasticsearch/数据库卷,并让我的所有节点装载此文件存储。 这是一种可接受的方法,还是存在一些明显的缺点(例如,当两个或多个数据库实例试图同时在该存储上写入数据时)


是否建议在每个节点中使用此类“数据”服务?或者我应该只为前端服务使用Docker Swarm,并提供一个redis/elasticsearch/数据库服务吗?

如果您想使用从多个应用程序实例访问的共享文件夹,那么应用程序本身的设计需要避免数据损坏(没有一个给定的文件是从多个应用程序同时写入的。所谓的互斥锁)

我所知道的所有数据库都不是这样设计的,所以不能将它们与共享存储一起使用


他们通常做的是连接集群中的所有数据库,并在软件级别进行同步。

感谢您的想法!现在我正在规划一个复杂的集群,其中包含各种不可无状态的服务。我的发现与您的相同:1.避免使用共享卷2.如果没有,请使用集群功能服务提供它3.由于弹性原因,避免使用服务的单个实例(在生产中)。我遇到的另一个问题是:(例如)如果我的一个群集数据库死亡,来自同一台机器的节点进程应该如何反应?我的回答:将整个机器标记为“病态”因此,它应该完全无法访问和/或重新启动。如果您将db容器部署为一项服务,您可以使用healthchecks,因此,如果容器真的死了,docker swarm将杀死它并启动一个新的容器,这意味着如果您使用mysql,只需几秒钟的停机时间。我目前正在开发一个非常简单的群集解决方案,以便您可以部署它许多实例都将使用gallera群集同步,因此丢失一个实例不是问题,它还没有准备好,但可能在几周后。