Как лучше всего обрабатывать асинхронные сообщения? - PullRequest
0 голосов
/ 27 июня 2019

Я реализую клиент обмена сообщениями websocket с netty и java8. Каждое сообщение имеет идентификатор транзакции, соответствующий его ответу.

Мне нужно реализовать API отправки. Так что у меня есть несколько вариантов.

  1. отправить (сообщение, обратный вызов);
  2. CompletableFuture send (message);

В любом случае, я думаю, что у меня есть карта транзакций (hashmap), которая содержит транзакции с идентификатором Callback или CompletableFuture. Мой вопрос, какой из них лучше? Или что-то другое? Можно ли положить CompletableFuture на карту?

Есть ли хороший дизайн для решения аналогичной проблемы?

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете пойти или RabbitMQ или Apache Kafka.

1) RabbitMQ: Для обработки небольших данных асинхронный обмен сообщениями. Он не масштабируется, так как требуется дополнительный плагин.
Скорость сообщения: 10K / Sec

1) Апач Кафка: Для обработки больших данных асинхронный обмен сообщениями. Он масштабируется. Скорость сообщения: 1000 К / сек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...