У меня есть 3 веб-сервера. DB
, Web
и Worker
. Работник просто обрабатывает сторонние процессы в течение всего дня.
Как только очередь превышает 100 000 заданий, я хочу иметь второй рабочий экземпляр, и я немного борюсь с правильным мышлением о том, как это сделать. (и если очередь превышает 300 000, мне нужно 3 рабочих, и дальше).
- Я беру свой
Worker
и делаю снимок. - Через Digital-Ocean:: API Я создам новый экземпляр, основанный на этом изображении.
- Как только экземпляр загружается, ему необходимо обновить код из Git -Repository
-
Мне нужно сообщить серверу базы данных, что ему разрешено получать соединения с этого экземпляра IP
-
как только очередь окажется ниже 20.000, я могу убить мой экземпляр.
Это правильный способ делать или есть лучшие способы, как это сделать? Я что-то пропустил?
Дополнительный вопрос:
В DB
у меня только mysql и redis. нет рубина или чего-то еще. поэтому нет никаких рельсов для запуска. Если мой Worker
решает, чтобы создать другого рабочего, новый должен иметь доступ к mysql. Кажется, что невозможно создать некоторый доступ с удаленного компьютера, и мне кажется, что мне нужно создать доступ с сервера db.
mysql> show grants;
+-----------------------------------------------------------------------------------------+
| Grants for [email protected] |
+-----------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'rails'@'162.243.10.147' IDENTIFIED BY PASSWORD <secret> |
| GRANT ALL PRIVILEGES ON `followrado`.* TO 'rails'@'162.243.10.147' |
+-----------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> CREATE USER 'rails'@'162.243.243.127' IDENTIFIED BY 'swag';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation