Spędziłem ostatni tydzień głęboko nurkując w dokumentach Akka i wreszcie zrozumiałem, czym są systemy aktorów i problemy, które rozwiązują.
Moje zrozumienie (i doświadczenie) tradycyjne JMS / AMQP brokerów wiadomość jest taka, że istnieją one dostarczyć następujące:
- Przetwarzanie asynchroniczne między producentem a konsumentem; i
- Gwarancja dostarczenia wiadomości, w tym trwałość, próby i awarie
Ale czy Akka nie zapewnia tego bez całej wymaganej infrastruktury i kosztów operacyjnych?
- W Akce cała komunikacja z aktorem jest asynchroniczna i nie blokuje; i
- W Akka
SupervisorStrategies
istnieją, aby wykonać próbę, wycofanie i eskalację. Podmioty mogą zostać skonfigurowane tak, aby utrzymywały się praktycznie w każdym sklepie, jeśli jest to również wymagane.
Zastanawiam się więc: czy moja aplikacja korzysta z Akka, czy kiedykolwiek muszę przedstawiać brokerów JMS / AMQP (np. ActiveMQ, RabbitMQ, Kafka)? Innymi słowy, czy kiedykolwiek zdarzy się przypadek użycia, w którym nowa aplikacja oparta na Akce również uzasadniałaby wprowadzenie nowego klastra brokera JMS / AMQP? Dlaczego lub dlaczego nie?
Jedynym argumentem byłoby to, że być może moja aplikacja Akka musi się zintegrować z innym systemem. Ale w takim przypadku moduł Akka-Camel pozwala Akce skorzystać z wyczerpującej, prawie nieskończonej listy możliwości integracji Camela (TCP, FTP, ZeroMQ, lista jest długa ...).
Myśli?