Tôi đang trong quá trình bắt đầu một dự án mới (dựa trên java). Tôi cần xây dựng nó như một kiến trúc mô-đun, phân tán và có khả năng phục hồi.
Do đó, tôi muốn có các quy trình kinh doanh để giao tiếp giữa chúng, có thể tương tác nhưng cũng độc lập.
Tôi hiện đang xem xét hai khuôn khổ, ngoài sự khác biệt về tuổi tác, còn thể hiện 2 quan điểm khác nhau:
- Akka ( http://akka.io )
- Lò phản ứng ( https://github.com/reactor/reactor )
Tôi nên cân nhắc điều gì khi chọn một trong các khuôn khổ trên?
Theo như tôi hiểu cho đến bây giờ, Akka vẫn bị ghép đôi (theo cách mà tôi phải 'chọn' diễn viên tôi muốn gửi tin nhắn), nhưng rất kiên cường. Trong khi Reactor lỏng lẻo (dựa trên sự kiện đăng tải).
Ai đó có thể giúp tôi hiểu làm thế nào để đưa ra một quyết định đúng đắn?
CẬP NHẬT
Sau khi xem xét tốt hơn Xe buýt sự kiện của Akka, tôi tin rằng theo một cách nào đó, các tính năng do Reactor thể hiện đã được đưa vào Akka.
Ví dụ: đăng ký và xuất bản sự kiện, được ghi lại trên https://github.com/reactor/reactor#events-selectors-and-consumers , có thể được diễn đạt bằng Akka như sau:
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");
Do đó, bây giờ đối với tôi, có vẻ như sự khác biệt chính giữa hai là:
- Akka, trưởng thành hơn, ràng buộc với Typeafe
- Lò phản ứng, giai đoạn đầu, liên kết với mùa xuân
Giải thích của tôi có đúng không? Nhưng về mặt khái niệm thì sự khác biệt giữa Diễn viên trong Akka và Người tiêu dùng trong Lò phản ứng là gì?