阿卡或反应堆 [已关闭]
我正在开始一个新项目(基于java)。我需要将其构建为模块化、分布式和弹性架构。
因此,我希望业务流程能够相互通信,可互操作,但也要独立。
我现在正在研究两个框架,除了年龄差异之外,还表达了两种不同的观点:
- 阿卡 (http://akka.io)
- 反应釜 (https://github.com/reactor/reactor)
选择上述框架之一时,我应该考虑什么?
据我所知,Akka仍然以某种方式耦合(在某种程度上,我必须“选择”我想向其发送消息的演员),但非常有弹性。虽然反应器是松散的(基于事件发布)。
有人可以帮助我了解如何做出正确的决定吗?
更新
在更好地审查了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");
因此,在我看来,现在两者之间的主要区别是:
- Akka,更成熟,绑定到类型安全
- 反应器,早期阶段,与弹簧结合
我的解释是否正确?但是,从概念上讲,Akka中的Actor和Reactor中的消费者之间的区别是什么?