मैं एक नई परियोजना (जावा-आधारित) शुरू करने की प्रक्रिया में हूं। मुझे इसे एक मॉड्यूलर, वितरित और लचीला वास्तुकला के रूप में बनाने की आवश्यकता है।
इसलिए मैं चाहूंगा कि व्यावसायिक प्रक्रियाएं आपस में संवाद करें, आपस में मिल-जुलकर रहें, लेकिन स्वतंत्र भी।
मैं अभी दो ढाँचों में देख रहा हूँ, जो कि उम्र के अंतर के अलावा, 2 अलग-अलग विचार व्यक्त करते हैं:
- अक्का ( http://akka.io )
- रिएक्टर ( https://github.com/reactor/reactor )
उपरोक्त रूपरेखाओं में से किसी एक को चुनते समय मुझे क्या विचार करना चाहिए?
जहां तक मैं अब तक समझता हूं, अक्का अभी भी किसी तरह से युग्मित है (एक तरह से मुझे उस अभिनेता को चुनना है जिसे मैं संदेश भेजना चाहता हूं), लेकिन बहुत लचीला। जबकि रिएक्टर ढीला है (जैसा कि इवेंट पोस्टिंग पर आधारित है)।
क्या कोई मुझे यह समझने में मदद कर सकता है कि एक उचित निर्णय कैसे लें?
अपडेट करें
अक्का की इवेंट बस की बेहतर समीक्षा करने के बाद , मुझे विश्वास है कि रिएक्टर द्वारा व्यक्त की जाने वाली सुविधाएँ पहले से ही अक्का में शामिल हैं।
उदाहरण के लिए सदस्यता और घटना प्रकाशन, https://github.com/reactor/reactor#events-selectors-and-consumers पर प्रलेखित , निम्नलिखित के रूप में अक्का में व्यक्त किया जा सकता है:
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");
इसलिए अब मुझे लगता है कि दोनों के बीच प्रमुख अंतर हैं:
- अक्का, अधिक परिपक्व, टाइपसेफ के लिए बाध्य
- रिएक्टर, शुरुआती चरण, वसंत के लिए बाध्य
क्या मेरी व्याख्या सही है? लेकिन वैचारिक रूप से एक्टर और रिएक्टर में उपभोक्ता के बीच अंतर क्या है ?