Обмен данными между двумя ботами на разных vds серверах



  • Подскажите как лучше и правильней реализовать обмен данными между двумя ботами на разных vds серверах. Необходимо для решения капч Яндекс. 1 бот в случае обнаружения капчи передаёт необходимые данные 2-му боту который решает капчу и возвращает результат. Яндекс капчу не удаётся решить на запросах потому как не могу получить параметр rdata и приходится задействовать браузер что влечёт нагрузку на сервер.

    Пока развернул ftp сервер, но постоянные ошибки не радуют…



  • @HustleMan

    • есть сервис API, который принимает данные каптчи и должен возвращать ответ.
    • есть message broker, в который пишет задачи этот сервис API и к которому подключаются распознавалки (любое кол-во)
    • распознавалка после выполнения работы отправляет результат в сервис API или в очередь сообщений. Тут логика будет зависеть от выбранного брокера.
    • отправитель данных каптчи периодически опрашивает сервис API распознана ли каптча

    Ссылки по теме:

    Несмотря на то, что архитектура может показаться "слишком". Преимущество ее в том, что она будет работать для любых подобных задач. А при наличии отлаженного механизма, решение n-ой подобной задачи не составит проблем.

    Если я бы делал, я бы выбрал:



  • @HustleMan said in Обмен данными между двумя ботами на разных vds серверах:

    Яндекс капчу не удаётся решить на запрос

    Все просто. Человеческим языком бот, который отсылает, фиксирует, что отправил и каждые n секунд в цикле делает запрос к другому серверу типо "ты уже решил?". А сервер отвечает: 1) "Да, решил", 2) "Еще не решил".
    Проблема - заключается в том, что нужно общее промежуточное место для двух серваков, где они фиксируют своё состояние. Как пример:

    1. Сервер отсылальщик
    2. Сервер приниматель каптчи
    3. Сервер для базы данных, куда имеют доступ оба сервака. Именно тут фиксируется состояние каптчи. Например, можно взять Mysql базу, поднять ее на xamp и сделать 2 поля в таблице: id, ready. Первый сервак заносит задание в базу и получает уникальный айди, второй сервак чекает, какие задания свободны и берет их, а как решит в поле ready установит true. Первый сервак переодически чекает ready и если есть true, то продолжает работу.
      Короче, на самом деле, звучит сложно, но на деле - это легко


  • @olegtut Можно ещё проще - двунаправленное соединение на вебсокетах поднять. Я на 100% уверен, что для такого есть готовые модули/библиотеки



  • @DoctorKrolic said in Обмен данными между двумя ботами на разных vds серверах:

    @olegtut Можно ещё проще - двунаправленное соединение на вебсокетах поднять. Я на 100% уверен, что для такого есть готовые модули/библиотеки

    Еще можно дать двусторонний доступ к файлам и в них фиксировать результат. Да вариантов множество, на самом деле


Log in to reply