3

Scala アプリケーションの 1 つである種のメッセージ バスを実装したいと考えています。機能は次のとおりです。

  • 1 .. N 種類のメッセージをサブスクライブする機能
  • メッセージにはペイロードが含まれる場合があります
  • 疎結合 (ノードはバスへの参照のみを保持します)
  • 軽量 (完全なエンタープライズ メッセージ キューなどはありません)

私が計画しているのは、すべてのノードとバス自体を標準の Scala アクターとして実装することです。たとえば、次のSubscriberような特性を定義したいとします。

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

理想的には、この特性を混合すると、 type のサブスクリプションがすでに登録されているはずMです。

では、この考えは理にかなっていますか?メッセージバスを実現するためのより良いアプローチはありますか?

4

1 に答える 1

4

免責事項: 私は Akka の PO です

イッティさん、こんにちは。

これは、アクター カーネルである Akka で既に行われています: www.akka.io

ドキュメント: http://doc.akkasource.org/routing-scala

Pub/Sub: Akka リスナー ルーター: Akka ルーター 利便性: Akka ルーティング

于 2010-12-09T20:11:23.443 に答える