我有两个MongoDB实例 - 一个奴隶和一个主人。还有一个仲裁者。
基本上设置如下: (图片来源:https://docs.mongodb.com/manual/replication/ )
在我的Symfony应用程序中,在config.yml中我有这个用于MongoDB:
# Mongo DB
doctrine_mongodb:
connections:
default:
server: %database_mongodb_access%
options: {}
default_database: %database_mongodb_name%
document_managers:
default:
auto_mapping: true
其中%database_mongodb_access%
为'mongodb://mongo:27017'
。
如果主节点发生故障,如何配置我的Symfony / Doctrine应用程序以自动故障转移到从属MongoDB实例,以便应用程序继续工作?
我从文档中不清楚: http://symfony.com/doc/master/bundles/DoctrineMongoDBBundle/config.html
答案 0 :(得分:1)
如果您通过将连接字符串中的所有服务器列为逗号分隔列表来使用副本集,则可以在一个连接上连接到多个mongodb服务器。
OPTIND=1
while getopts "b:a:" option
do
case "${option}"
in
b) MERGE_BRANCH=${OPTARG};;
a) ACTION=${OPTARG};;
esac
done
if [[ "$ACTION" != "dry" && "$ACTION" != "prune" ]]
then
echo "Invalid"
fi
shift $((OPTIND-1))
[ "$1" = "--" ] && shift
(( 1 <= ${#} )) || { echo "missing mandatory argument" 2>&1 ; exit 1; };
并检查故障转移的重试机制: