Будет ли Reactor обеспечивать удаленное взаимодействие?

Я пытаюсь выяснить, должны ли мы использовать Akka или Reactor для нашего следующего проекта. Один из наиболее важных вопросов заключается в том, обеспечит ли будущая структура выбора возможность удаленного взаимодействия. Как я увидел, Акка предлагает это именно так, как нам хотелось бы.

К сожалению, в вики-сайте GitHub разделы TCP-сервер / клиент пустые, и я пока не могу найти другую информацию об этом.

Будет ли реактор обеспечивать удаленное взаимодействие?

1 ответ

Решение

Я не думаю, что Акка и Реактор - Яблоки с Яблоками. Реактор намеренно минимален, только с парой внешних зависимостей. Он предоставляет вам базовый набор инструментов для написания приложений, управляемых событиями, но он по своей конструкции не обеспечивает конкретную модель. На самом деле, внедрение системы Dynamo с использованием компонентов Reactor не займет много времени. Здесь есть все, что нужно, и, скорее всего, потребуется написать на нем учебное пособие, чтобы показать, как все соединить.

Модель Динамо, которую использует Akka, является проверенной системой. Basho сделал фантастическую реализацию этого в Riak. Приятно видеть, что Акка следует их примеру в этом отношении. Если бы мы внедрили систему кластеризации Reactor, это была бы модель "Динамо". Но поскольку Reactor - это в основном просто обработчики событий и тематическая публикация / публикация, ваши потребители могут осуществлять любое удаленное взаимодействие по вашему желанию. Они могут интегрироваться с HTTP, AMQP, Redis, чем угодно. Нет необходимости в специальных API-интерфейсах для подобных вещей, потому что они просто события. Вы можете закодировать клиентское приложение AMQP примерно за 10 минут и опубликовать данные из RabbitMQ в приложении Reactor.

В какой-то момент у нас могут быть разные реализации кластеризации для разных целей. Модель Динамо может работать хорошо для некоторых, в то время как другие захотят простую систему на основе Redis. Или, может быть, можно использовать компоненты, уже имеющиеся в Reactor, для работы с Java Chronicle для создания кластеров на основе дисков - то, что вы можете сделать прямо сейчас, просто подключив нужных потребителей. Но это будут внешние модули, которые можно добавить в Reactor. Само реакторное ядро, вероятно, никогда не будет иметь самоуверенного кластерного решения просто потому, что оно не соответствует назначению этих основных компонентов: фундаментальной основы для событийно-управляемых приложений в JVM.

(Я сейчас работаю над вики-документами TcpClient/TcpServer, так что, надеюсь, они будут заполнены для M2 Reactor, который появится очень скоро.)

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