2010-12-09 2 views
3

Я хочу реализовать какую-то шину сообщений в одном из моих приложений Scala. Особенности будут:Реализация шины сообщений Scala от актеров?

  • возможности подписки на 1 .. N тип сообщений
  • сообщений могут иметь полезные нагрузку
  • слабосвязанность (только узлы содержат ссылку на шину)
  • легких (нет полностью опущенная корпоративная очередь сообщений и т. д.)

Я планирую реализовать все узлы и сам автобус в качестве стандартных актеров Scala. Например, я хочу, чтобы определить черту Subscriber так:

trait Subscriber[M <: Message[_]] { 
    this: Actor => 
    def notify(message: M) 
} 

В идеале смешивание в этих чертах уже должно зарегистрировать подписку типа M.

Так ли это имеет смысл? Существуют ли более эффективные подходы к реализации шины сообщений?

ответ

4

Отказ от ответственности: Я PO Акки

Привет Итти,

Это уже сделано для вас в Акку, актер Kernel: www.akka.io

Docs: http://doc.akkasource.org/routing-scala

Pub/Sub: Akka Listeners Маршрутизаторы: Akka Routers Удобства: Akka Routing

+0

Я принимаю ваш ответ как «да, вы можете реализовать автобусную систему с помощью актеров». Я, вероятно, сделаю свою собственную реализацию, но потрачу некоторое время на то, что может предложить Akka. Спасибо! – aeisele 2010-12-10 20:04:22