새 프로젝트 (자바 기반)를 시작하는 중입니다. 모듈 식, 분산 형, 탄력적 인 아키텍처로 구축해야합니다.
따라서 비즈니스 프로세스가 서로 통신하고 상호 운용 가능할뿐만 아니라 독립적이기를 원합니다.
저는 지금 나이 차이 외에도 두 가지 다른 관점을 표현하는 두 가지 프레임 워크를보고 있습니다.
- Akka ( http://akka.io )
- 리액터 ( https://github.com/reactor/reactor )
위의 프레임 워크 중 하나를 선택할 때 고려해야 할 사항은 무엇입니까?
내가 지금까지 이해하는 한, Akka는 여전히 어떻게 든 연결되어 있지만 (메시지를 보내고 싶은 배우를 '선택'해야하는 방식으로) 매우 탄력적입니다. Reactor가 느슨한 동안 (이벤트 게시를 기반으로 함).
누군가가 적절한 결정을 내리는 방법을 이해하도록 도울 수 있습니까?
최신 정보
Akka 의 Event Bus 를 더 잘 검토 한 결과 , 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, 더 성숙하고 Typesafe에 바인딩
- 원자로, 초기 단계, 봄에 바인딩
내 해석이 맞습니까? 그러나 Akka의 Actor와 Reactor의 Consumer의 개념적 차이점은 무엇 입니까?