Приложение в реальном времени, Reactor Netty против Netty

Я знаю, что второй основан на первом, но мне интересно, в чем отличия, кроме API? Можно ли установить соединение push-модели с Reactor? Я собираюсь создать приложение для работы в реальном времени, поэтому мне нужно найти наиболее подходящее для этой цели. Буду признателен за любую помощь :)


person minizibi    schedule 13.10.2018    source источник
comment
Сами API сообщат вам, поддерживается ли модель push. Познакомившись с API, вы также начнете понимать, что значит их использовать, и таким образом будете лучше подготовлены к тому, чтобы сделать наиболее подходящий выбор.   -  person Emmanuel Rosa    schedule 13.10.2018


Ответы (1)


API в данном случае — это гораздо больше, чем синтаксический сахар. Он распространяет реактивный контракт. Реактивный контракт гарантирует, что производитель не будет производить больше задач/сообщений/чего-либо, чем потребитель может потреблять без удушья. Это гарантирует оптимальное использование вычислительной мощности за счет ограничения переключения потоков (я упрощаю, чтобы оставаться кратким). На уровне Netty распространение реактивного контракта означает, что подтверждение TCP не будет отправлено до тех пор, пока данные в сети не будут обработаны.

Я не знаю, что для вас значит «в реальном времени», но Reactor, вероятно, ваш друг. В любом случае его отличный API имеет смысл для любого приложения с обработкой, которая может быть разделена на несколько этапов.

Я написал мою собственную библиотеку над Netty, так что я немного знаю, о чем говорю. . Коннектор Netty выделяет объекты Command, которые могут быть переданы в Reactor Flux, но я не предлагаю средства для распространения Reactive Contract. Это было несколько лет назад, когда Reactor Netty назывался Reactor IO и находился в зачаточном состоянии. С тех пор API был полностью переписан.

Итак, мой совет: если вам нужен Reactive Contract, используйте Reactor Netty.

Это может быть нетривиально, как описано в разделе Динамическое объединение потоков. Но на мой вопрос может быть простой ответ, и (в зависимости от вашего приложения) вы можете просто обрабатывать каждый запрос в своем собственном Flux.

person Laurent Caillette    schedule 14.10.2018