2010-10-18 4 views
1

Каков наилучший способ интеграции node.js с Scala (Java)?

Простейший способ, который я вижу до сих пор, - использовать Redis PubSub в качестве посредника, с сервером node.js, обрабатывающим HTTP-запросы и публикации сообщений в канал запроса (через redis-node-client), а участники Scala (например, Akka Redis PubSub integration) подписали канал запроса и публикация результатов вычислений по каналу ответа (подписанный узлами).Коннектор между node.js и Scala (Java)

ответ

2

Я реализовал small proof-of-concept library для подключения node.js к Scala Remote Actors напрямую через TCP (используя protobuf как механизм сортировки).

2

Предполагая, что вы будете использовать JSON в качестве формата сообщения, вы найдете пару очень хороших реализаций JSON внутри рамки лифта (которые вам не нужно использовать в качестве веб-фреймворка, вы можете счастливо использовать вишнево- выбрать компоненты из лифтов).

Но если вы хотите пойти с моделью pubsub/actor (и это хороший выбор, в зависимости от ваших потребностей), вы могли бы сделать намного хуже, чем Akka, как вы уже сказали.

+0

AFAIU, вы предлагаете использовать JSON-диспетчер [RPC-style] (например, этот http://demo.liftweb.net/stateless_json), отправляющий JSON для подъема с node.js через HTTP, правильно? –

2

Я не думаю, что библиотека node.js, реализующая протокол удаленного действия Scala, действительно является лучшим способом. Он может хорошо работать для вашего текущего приложения, но что, если вам нужно добавить третью технологию в микс. Может ли это быть лучше, если для этого требуется написать специальные библиотеки поддержки для каждого языка/платформы?

Лучшим способом их интеграции является использование технологии общего назначения для интеграции приложений всех языков. И более конкретно, тот, который поддерживает передачу сообщений на основе актеров. К счастью, AMQP и ZeroMQ вписываются в это пространство, и оба могут использоваться с node.js или scala. Кроме того, библиотеки AMQP и ZeroMQ будут использоваться в большей степени, чем любой специальный узел node-scala, поэтому буги будут получать фиксированные и новые версии будут поддерживаться.

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

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