Библиотека сообщений безопасна для сбоев клиент / сервер?

Я оцениваю некоторые библиотеки сообщений и протоколов (например, ZeroMQ, WAMP). Одно из моих основных требований заключается в том, что отправка сообщений от клиента к серверу и наоборот (двусторонняя связь) должна быть абсолютно безопасной в отношении сбоев клиент / сервер. Для меня это означает, что, например, клиент должен продолжать отправлять все недоставленные сообщения после спонтанной перезагрузки. Таким образом, библиотека должна реализовывать некоторую файловую буферизацию. Есть ли что-нибудь, что я могу использовать из коробки?

[РЕДАКТИРОВАТЬ] Некоторые заметки о моем случае использования: в моем сценарии около 1000 клиентов взаимодействуют с одним сервером. Нет прямой связи между клиентом и клиентом. Но мне нужна двусторонняя связь, поэтому оба клиента могут передавать некоторые данные на сервер и наоборот. Клиенты подключены через мобильную сеть 3G. И клиент, и сервер написаны на C#. Я сосредоточился на использовании ZeroMQ, Apache Thrift или WAMP. Но одним из основных требований является обеспечение асинхронного, но безопасного обмена сообщениями в отношении сбоев системы. Поэтому, когда клиент запускает асинхронную передачу данных на сервер, и он падает до того, как сообщение может быть доставлено на сервер, требуется, чтобы клиент продолжил отправку сообщения после перезагрузки.

1 ответ

Вы можете изучить проект Kafka на Apache.org .

Проблема сложнее, чем кажется, и большинство людей не хотят платить за ее решение.

Кроме того, существует проблема UX, когда старые сообщения в очереди воспроизводятся без понимания пользователя.

Другие вопросы по тегам