DoctorX
@DoctorX
Веб разработчик

Инструмент для реализации децентрализованного обмена сообщениями между серверами

image
Есть три или более равнозначных сервера. (квадраты на картинке.)
На каждом запущено некое приложение (оранжевый квадрат.)
Задача обеспечить общение приложений между собой. Скорость роли не играет.
Если сообщение отправлено на недоступный сервер оно не должно потеряться а дложно прийти в пункт назначения как только он будет доступен.
Обеспечить 100% сохранение всех отправленых сообщений в независимости от того сколько из серверов доступны на данный момент.
Реальный пример работы такой системы — E-mail Сервера.

Как я это вижу:
Приложение отправляет сообщение системе на этом сервере (зелёный круг.) которая сохраняет сообщение в своей бд. и пытается отправить на сервер-получатель. При успешной доставке сообщение перемещается из первого зелёного круга во второй. от куда и забирается оранж. квадратом.
Всё что входит в серый круг — система сообщений которую я хочу реализовать.

Вопрос: Есть ли какой-то инструмент который можно использовать полностью или частично для реализации подобной системы?
Может использовать какую-то бд с мульти-мастер репликацией? Но тогда сообщения будут курсировать на все сервера системы а не только для получателей.

Спасибо.
  • Вопрос задан
  • 2985 просмотров
Пригласить эксперта
Ответы на вопрос 3
gaelpa
@gaelpa
RabbitMQ / какой другой AMQP сервер?
Ответ написан
IlyaEvseev
@IlyaEvseev
Opensource geek
Реальный пример работы такой системы — E-mail Сервера.

Есть ли какой-то инструмент который можно использовать полностью или частично для реализации подобной системы?

Вы сами себе ответили.
SMTP-сервер на каждом узле + procmail.
Ответ написан
Terranz
@Terranz
посмотрите реализацию фидо\usenet
там это как раз и было, децентрализованный пересыл сообщений
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы