На каком протоколе реализовать обмен между двумя серверами.
Всем добрый день. Посдкажите пожалуйста как можно сделать передачу между двумя серверами. Плохо представляю шаблон. Какой протокол использовать tcp или http? Был один из вариантов на tcp.
Первый сервер: Создаю сервер для прослушки: net.createServer().listen(9999) И создаю сокет для отправки данных socket = new net.Socket() Второй сервер: Создаю сервер net.cteateServer().listen(8888) И создаю сокет socket = net.Socket() Получается данные передаются в одну сторону по одному порту, в обратную сторону по другому порту. Но предполгаю что получится низкоуровнего. И может использовать лучше http протокол. Если допустим настроить на каждом сервере express js? |
http работает поверх tcp:
Сетевая модель OSI Конкретный выбор зависит от задач, но судя по вопросу - вам лучше по http. Цитата:
|
Один сервер - "сервер", другой сервер - "клиент".
|
предлагаю использовать socket.io, супер изи )
https://socket.io/ там и fullduplex, и автореконнект, и ... |
Цитата:
|
Цитата:
Сможет ли socket.io обеспечить паралельное получение данных на центр. сервере?, передачу длинных json строк после sql? Сможет, просто если делать руками, например, один из вторичных серверов ушел в оффлайн, на главный поступали данные, после выхода из оффлайн вторичный сервер должен делать что? Сделать запрос, и обновить локальную бд? Если условия простые, можно и так. https://socketcluster.io - можно еще такую штуку посмотреть |
все данные находяться в mysql, пока не можем менять бд. Продолжу пока допиливать приложение на нативном http модуле. Непонятна одна ситуация: если запущен отдельный процесс через child_process.fork() на центр сервере, который отправляет данные раз в час по http, выделять ли для него дополнительный порт, либо с одного сервера со всех процессов отправлять данные через один порт. Возможно существует какая - либо литература по организации бэкэнд приложений и посторению правильной архитектуры на протоколах?
|
А вам не всё-равно с какого порта пойдут данные? Порт обязателен для слушающей стороны, а для соединяющейся его можно не указывать - в этом случае система сама его выберет случайным образом.
Порт (компьютерные сети) |
Часовой пояс GMT +3, время: 08:00. |