Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.04.2020, 08:11
Новичок на форуме
Отправить личное сообщение для Aido Посмотреть профиль Найти все сообщения от Aido
 
Регистрация: 30.04.2020
Сообщений: 1

Оптимальная передача данных
Добрый день, подскажите, как лучше сделать. Я новичок, и с такой задачей ранее не сталкивался.

Итак, дано
1. Сервер 1, который принимает запросы от некоего удаленного, неконтролируемого клиента. Запросы приходят в виде блока строк. Размер блока (количество строк в блоке) может быть различным. Клиент ожидает от Сервера 1 подтверждение приема блока данных. В случае успешного подтверждения передается новый блок, если есть, в случае ошибки блок передается повторно
2. Задача Сервера 1 передать эти данные дальше через API на Сервер 2.
Второй сервер принимает данные построчно.

Вопрос как лучше организовать передачу данных? Я рассуждаю следующим образом
Вариант 1
Сервер 1 после приема данных разбивает из на строки и поочередно пропихивает через API на Сервер 2. Сервер 1 отвечает клиенту только после окончания передачи данных на Сервер 2.
Недостаток: Если передача на сервер 2 будет медленной, то клиент не дождется ответа и будет передавать данные заново...

Вариант 2
Сервер 1 записывает принятый блок в файл. Передача на сервер 2 осуществляется другим приложением/процессом, которое будет читать строки из файла и удалять их после успешной отправки.
Недостаток: получается, что два процесса будут конкурировать на доступ к файлу. Я не уверен, что смогу правильно это разрулить. Буду благодарен, если подкините ссылочку, где про это можно почитать.

Вариант 3
Сервер 1 пишет строки в БД, а потом другое приложение/процесс читает их из БД и помечает, как отправленные после отправки на Сервер 2.
Недостаток: нужно поднимать БД для достаточно простого случая... очень хочется обойтись без этого.

Возможно, если еще варианты, буду очень признателен, если поделитесь своим опытом и подскажете, как лучше все реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2020, 04:13
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 740

а что с ответом клиенту в вар. 2 и 3?
если это делается сразу после записи в файл или БД, типа, "данные взяты в обработку", то ничего не мешает в первом варианте так же ответить, и заняться отправкой на сервер 2. Нодовский Event loop идеально заточен под такие взаимодействия
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax передача большого количества данных diakon AJAX и COMET 3 29.05.2015 13:23
AJAX, Только передача данных. NewJSUser AJAX и COMET 14 12.01.2015 16:38
ajax передача данных с setInterval Segol Общие вопросы Javascript 0 07.07.2013 08:36
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 11:00
передача данных между формами Yurii Общие вопросы Javascript 2 30.04.2008 19:52