2015-07-09 6 views
1

Мне нужно передавать данные между парой сотен КБ и многими МБ между узлами кластера akka. Самый простой подход - разделить его на фрагментированные сообщения, но это кажется целесообразным, поскольку это может мешать домашней болтовне кластера.Потоковые данные между узлами кластера akka

В качестве альтернативы, я мог бы использовать сообщения для связи одноразовых URL-адресов и использования http.

Однако я бы предпочел постоянный подход к подключению, поэтому я думал, используя zeromq и chunked messages.

Но вместо того, чтобы катиться по моему собственному подходу, я бы хотел использовать существующий способ выполнить это, но я его не нашел.

Еще одно требование: в большинстве случаев потребление этого потока происходит прямо через Play, поэтому предпочтительным будет подход, который создал итерацию, которая могла бы использоваться для прокси-сервера на http.

ответ

0

Iteratees не может связываться через границы машины, поэтому одни итерации, вероятно, не являются инструментом, который вы ищете.

Я бы преследовать одну из следующих подходов:

  1. Использование удаленных Rpc AKKA Актеры отправить куски данных по проводам. Актеры могут использоваться для создания итераций и счетчиков с обеих сторон (Enumerator.unicast и Iteratee.foreach), так что тот факт, что вы используете Актеры, является просто детальностью реализации и не отображается в вашем интерфейсе этих потоков.

  2. Akka Streams. Эта библиотека поддерживает TCP-соединения, и, хотя это другая потоковая библиотека из итераций, я обнаружил, что она более надежна в поддерживаемых ею потоковых операциях. Похоже, что Play хочет переместить towards a tighter integration с потоками Akka, поскольку они ищут замену своего netty HTTP-сервера потоками Akka Http

 Смежные вопросы

  • Нет связанных вопросов^_^