Останній тиждень я провів глибоке занурення в документи Акки і нарешті зрозумів, що таке акторські системи та проблеми, які вони вирішують.
Я розумію (і досвід) традиційних посередників повідомлень JMS / AMQP полягає в тому, що вони існують, щоб забезпечити наступне:
- Асинхронна обробка між виробником і споживачем; і
- Гарантія доставки повідомлень, включаючи стійкість, повторні спроби та резервні копії
Але чи не забезпечує Akka це без усієї необхідної інфраструктури та експлуатаційних витрат?
- У Akka все спілкування в Акторі асинхронне і не блокує; і
- У Akka
SupervisorStrategies
існують, щоб здійснити повторне, резервне та ескалаційне. Актори можуть бути налаштовані на зберігання практично в будь-якому магазині, якщо це теж вимога.
Тому мене цікавить: якщо в моєму додатку використовується Akka, чи не виникає у мене коли-небудь необхідність залучити брокерів JMS / AMQP (наприклад, ActiveMQ, RabbitMQ, Kafka)? Іншими словами, чи коли-небудь використовувався випадок, коли новий додаток на базі Akka також вимагав запровадити новий брокерський кластер JMS / AMQP? Чому або чому ні?
Єдиним аргументом було б те, що, можливо, мій додаток Akka має інтегруватися з іншою системою. Але в такому випадку модуль Akka-Camel дозволяє Акці використовувати загальний, майже нескінченний список можливостей інтеграції (як TCP, FTP, ZeroMQ, список продовжується і продовжується ...).
Думки?