Задать вопрос
@yiicoder

Как правильнее организовать синхронизацию баз на PHP+Apc+Mongo?

В приложении очень большое кол-во записи в БД - так, что mongodb перестает справляться.
APC кэш на чтение не сильно помог исправить ситуацию.

Хотим и запись и чтение делать из APС, а данные в mongodb - записывать "периодически".

Сейчас сделали через скрипт на корне - замечаем, что данные иногда теряются, да и решение выглядит так себе.

Как еще можно организовать скидывание данных в БД?
  • Вопрос задан
  • 2503 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Я правильно понимаю, вы пытаетесь использовать БД как кэш?
Если вам нужен именно кэш - почему вы удивляетесь, что данные теряются? Это вполне нормальная ситуация, я бы рекомендовал посмотреть в сторону memcached/redis, apc все же лучше для хранения опкодов.

Если же вам нужна БД - либо шардируйте, либо проводите оптимизации хранимых данных, либо прокачивайте кэш до уровня "на чтение бд вообще не трогается".

Под задачу синхронизации не плохо подходит решение:
1. Есть очередь (либо список) под rabbitmq, или любым другим менеджером очередей.
2. При любом изменении данных в БД - в очередь записывается сообщение об этом.
3. На зависимых серверах в постоянном прослушивании находятся обработчики, которые выполняют действия, записанные в сообщениях из очередей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽