私は新しいプロジェクト(javaベース)を始めようとしています。私はそれをモジュール式の分散型の弾力性のあるアーキテクチャとして構築する必要があります。
したがって、私は、ビジネスプロセスが相互に通信し、相互運用可能であると同時に独立していることを望んでいます。
私は現在、年齢の違いに加えて、2つの異なる見解を表現する2つのフレームワークを見ています。
- アッカ(http://akka.io)
- リアクター(https://github.com/reactor/reactor)
上記のフレームワークのいずれかを選択するときに考慮すべきことは何ですか?
今まで私が理解している限り、Akkaは(メッセージを送信したいアクターを「選択」する必要がある方法で)何らかの形でまだ結合されていますが、非常に弾力性があります。Reactorが緩んでいる間(イベントの投稿に基づく)。
誰かが私が適切な決定をする方法を理解するのを助けることができますか?
更新
Akka のイベントバスをよりよく見直した後、Reactorによって表現された機能が何らかの方法でAkkaにすでに含まれていると思います。
たとえば、https://github.com/reactor/reactor#events-selectors-and-consumersに記載されているサブスクリプションとイベントの発行は、Akkaでは次のように表現できます。
final ActorSystem system = ActorSystem.create("system");
final ActorRef actor = system.actorOf(new Props(
new UntypedActorFactory() {
@Override
public Actor create() throws Exception {
return new UntypedActor() {
final LoggingAdapter log = Logging.getLogger(
getContext().system(), this);
@Override
public void onReceive(Object message)
throws Exception {
if (message instanceof String)
log.info("Received String message: {}",
message);
else
unhandled(message);
}
};
}
}), "actor");
system.eventStream().subscribe(actor, String.class);
system.eventStream().publish("testing 1 2 3");
したがって、この2つの主な違いは次のとおりです。
- Akka、より成熟した、Typesafeにバインド
- 原子炉、初期段階、春にバインド
私の解釈は正しいですか?しかし、概念的にはAkkaのActorとReactorのConsumerの違いは何ですか?