Saya menghabiskan minggu terakhir menyelam dalam-dalam ke dokumen Akka dan akhirnya memahami apa sistem aktor, dan masalah yang mereka pecahkan.
Pemahaman saya (dan pengalaman dengan) pialang pesan tradisional JMS / AMQP adalah bahwa mereka ada untuk menyediakan yang berikut:
- Pemrosesan yang tidak sinkron antara produsen dan konsumen; dan
- Jaminan pengiriman pesan, termasuk ketekunan, coba lagi, dan fallback
Tetapi bukankah Akka menyediakan ini, tanpa semua infrastruktur dan biaya operasional yang diperlukan?
- Di Akka, semua komunikasi Aktor tidak sinkron dan non-pemblokiran; dan
- Di Akka,
SupervisorStrategies
ada untuk mencapai coba lagi, mundur dan naik. Aktor dapat dikonfigurasi untuk bertahan pada hampir semua jenis toko, jika ini merupakan persyaratan juga.
Jadi ini membuat saya bertanya-tanya: jika aplikasi saya menggunakan Akka, apakah saya pernah perlu membawa broker JMS / AMQP (mis. ActiveMQ, RabbitMQ, Kafka) ke dalam gambar? Dengan kata lain, apakah ada yang pernah kasus penggunaan di mana aplikasi baru berbasis Akka akan kemudian juga menjamin pengenalan baru JMS / AMQP broker klaster? Mengapa atau mengapa tidak?
Satu-satunya argumen adalah mungkin aplikasi Akka saya harus berintegrasi dengan sistem lain. Tetapi dalam kasus itu, modul Akka-Camel memungkinkan Akka untuk memasuki daftar lengkap kemampuan integrasi Camel yang hampir tak terbatas (TCP, FTP, ZeroMQ, daftarnya berjalan terus dan terus ...).
Pikiran?