Реактивные потоки с использованием Spring и Akka

На момент написания этого вопроса я использую Spring Framework 5.0.0.M5 и Akka 2.4.17. В проекте я использую обмен сообщениями с актерами и потоки из Akka. Я вижу, что в Spring Framework v5 также есть потоки.

Согласно http://projectreactor.io/

«В качестве Reactive Engine / SPI модули Reactor Core и IO предоставляют конструкции реактивных потоков для целенаправленных вариантов использования, в конечном итоге в сочетании с Spring, RxJava, Akka Streams, Ratpack ... В качестве реактивного API модули структуры реактора будут предлагать богатые потребляемые функции например, композиция и события в пабах ".

похоже, что Spring использует потоки Akka под капотом (плюс другие вещи).

Вопрос: каковы возможные преимущества и недостатки перехода с потоков Akka на потоки Spring?

РЕДАКТИРОВАТЬ: вот гораздо более широкий вопрос (Reactov против Akka в целом): Akka или Reactor


person spam    schedule 25.02.2017    source источник
comment
похоже, что Spring использует потоки Akka под капотом (плюс другие вещи). Я почти уверен, что это не так.   -  person Branislav Lazic    schedule 26.02.2017
comment
вопрос об Akka или Reactor может быть слишком устаревшим, так как в то время Reactor находился в стадии бета-тестирования по направлению к 1.0.0. Reactor 3 очень отличается от предыдущих итераций, теперь он ближе к RxJava 1 и 2   -  person Simon Baslé    schedule 27.02.2017


Ответы (1)


Spring использует под капотом Reactor (http://projectreactor.io), который реализует спецификацию Reactive Streams. Одна из основных целей этой спецификации, которая также реализуется Akka Streams, - обеспечить взаимодействие реактивных библиотек.

Это означает, что вы можете использовать Akka Stream в реактивном приложении Spring, и Spring будет подключать его к своим внутренним потокам Reactor или выполнять преобразования, если вы предоставляете различные реактивные типы, например. в ваших контроллерах.

person Simon Baslé    schedule 27.02.2017