Я использую API-интерфейсы потоковой передачи Twitter для получения последних твитов из Twitter и ответа на них, если они соответствуют определенным критериям (конкретному хэштегу). При развертывании на одном экземпляре он работает очень хорошо, поскольку на твиты отвечает только одно приложение.
Если я хочу масштабировать это до нескольких экземпляров, будет много приложений, которые будут обрабатывать один и тот же твит. Вероятное решение, которое я думал, заключалось в том, чтобы поддерживать общую базу данных, где каждый раз, когда я беру твит, перед тем, как отвечать на них, я ввожу его в базу данных, а другие экземпляры проверяют, получил ли твит ответ или нет. Но это кажется неправильным, поскольку это замедлит процесс и может вести себя странно, если оба экземпляра выбирают один и тот же твит в одно и то же время.
Извините, если разместили не на том форуме.
Вы предлагаете то, как все должно быть сделано. Имейте один сервер или пул серверов, которые используют API и добавляют каждый новый твит в базу данных, а затем другой сервер или пул «рабочих», которые выполняют действия с записями базы данных.
Вы также можете рассмотреть вопрос о рабочей очереди, чтобы передавать сообщения о новых твитах своим рабочим.
При правильной реализации дополнительная сложность добавит к вашему ответу всего несколько миллисекунд, что, вероятно, не будет иметь значения для этого варианта использования.