#ruby-on-rails #ruby #design-patterns
#ruby-на-рельсах #рубин #дизайн-шаблоны #ruby-on-rails #ruby #шаблоны проектирования
Вопрос:
Я хотел бы услышать от сообщества о хорошем шаблоне для решения следующей проблемы.
У меня был сервер «делающий все», который был веб-сервером, mysql, сервером сканеров. Начиная с двух или трех недель, используя инструменты мониторинга, я видел, что всегда, когда мои сканеры были запущены, моя средняя загрузка превышала 5 (4-ядерный сервер, было бы нормально загружать до 4.00). Итак, у меня есть другой сервер, и я хочу переместить туда свои сканеры. Мой вопрос в том. Как только у меня будут обработаны данные на моем сервере обхода, я должен вставить их в свою базу данных. И я бы не хотел открывать удаленное соединение и вставлять его в базу данных, поскольку я предпочитаю использовать Rails framework, кстати, я использую rails, чтобы упростить создание всех отношений и т.д.
проблема, которую необходимо решить:
на сервере есть данные обхода (куча CSV-файлов), и я хочу переместить их на удаленный сервер и вставить в свою базу данных, используя rails.
ограничение: я не хочу запускать mysql (slave master), поскольку это потребовало бы более глубокого анализа, чтобы узнать, где происходит больше операций записи.
Идеи:
-
переместите CSV-файлы из сканеров, чтобы удалить сервер, используя (ssh, rsync) и импортируя его в течение дня
-
напишите API на сервере обхода, который мой удаленный сервер может использовать (много раз в день) и импортировать данные
есть какие-нибудь другие идеи или хорошие шаблоны вокруг этой темы?
Ответ №1:
С небольшим изменением второго шаблона, который вы отметили, у вас мог бы быть API на вашем сервере веб-приложений / db-сервере. Которые искатель будет использовать для составления отчета в своих данных. Он мог бы делать это пакетно, в режиме реального времени или только в определенный промежуток времени (день / ночь … и т.д.).
Этот шаблон позволит сканеру решать, когда сообщать о данных. вместо того, чтобы веб-приложение выполняло «опрос» данных.