Имитация репликации MongoDB в Openshift
В настоящее время я работаю над проектом и использую openshift в качестве paas. В основном это соответствует всем моим потребностям. У меня есть мой веб-сайт, моя статистика и мой веб-сервер API.
Только мой API веб-сервер вызывает мою БД
Сейчас идет вопрос с моей базой данных. Я использую mongodb. Проблема в том, что в настоящее время репликация в openshift является технологическим предварительным просмотром и не должна использоваться в производстве, поскольку она использует временное хранилище. Таким образом, если все узлы падают, все данные будут потеряны.
Мы также не можем масштабировать модуль mongodb, потому что это может привести к многократному действию записи и создать реальные проблемы.
У меня была идея, но я хотел бы знать, видите ли вы что-то не так.
Как повторное отношение, репликационный набор состоит из: Один первичный => это единственный, которому разрешено выполнять действия записи. Несколько вторичных = = гарантировать, что действия чтения Произвольные => на данный момент я не фокусируюсь на этом.
Итак, моя идея смоделировать репликационный набор (мне нужно несколько твиков на моей стороне): - Создайте экземпляр mongodb, который будет кореняться с primary.db.example.com - Создайте экземпляр mongodb, который будет кореняться в second.db. example.com
Оба будут указывать на одно и то же постоянное хранилище.
Тогда в моем API:
- Ссылка на primary.db.example.com и second.db.example.com и, соответственно, назовите их:
- Если я делаю операцию записи, я звоню: primary.db.example.com
- Если я произвожу операцию чтения, я вызываю second.db.example.com
Таким образом, я мог бы масштабировать вторичные для операции чтения. И если основной ресурс падает, Openshift будет пытаться воссоздать модуль (например, когда есть выборы для нового основного)
Я знаю, что это не лучшее решение, но в настоящее время это единственное решение, которое я нашел (кроме создания внешней реплики, которая подразумевает множество вопросов о безопасности, стоимости и т. Д.)
Что вы думаете об этом временном решении (ждать реального готового решения Openshift)
С уважением