Tag: 容错

有没有办法使docker集装箱真正容错?

我的意思是容错,就像运行一个备份容器一样,不断地将活动容器的状态(内存)同步到被动容器,所以如果出现故障,我可以故障切换到另一个容器,而不会丢失主动networking连接或运行在容器? 我知道docker群存在,这可以使我的容器高度可用,通过在其他节点上重新启动它们以防止节点故障,甚至通过复制使服务容错,但这只有在我的服务是无状态的或保存在共享的networking存储或数据库中。 我正在寻找像vSphere FT这样的解决scheme。

服务器重启后自动重新连接到RabbitMQ集群

我有RabbitMQ的主从configuration。 作为两个Docker容器,具有dynamic内部IP(每次重新启动时都会更改)。 集群在干净的运行中工作正常,但是如果其中一台服务器重新启动,它将无法重新连接到集群: rabbitmqctl join_cluster –ram rabbit@master Clustering node 'rabbit@slave' with 'rabbit@master' … Error: {ok,already_member} 和以下: rabbitmqctl cluster_status Cluster status of node 'rabbit@slave' … [{nodes,[{disc,['rabbit@slave']}]}] 说该节点不在一个集群中。 只有这样,我发现它删除此节点,然后才尝试重新join群集,如: rabbitmqctl -n rabbit@master forget_cluster_node rabbit@slave rabbitmqctl join_cluster –ram rabbit@master 这有效,但对我来说并不好看。 我相信应该有更好的方式来重新join集群,而不是忘记和重新join。 我看到有一个命令update_cluster_nodes也,但似乎这个东西不同,不知道是否可以帮助。 集装箱重启时重新join集群的正确方法是什么?