Tôi đã dành tuần cuối cùng để tìm hiểu sâu về các tài liệu của Akka và cuối cùng cũng hiểu hệ thống diễn viên là gì và những vấn đề mà họ giải quyết.
Sự hiểu biết của tôi (và kinh nghiệm với) các nhà môi giới tin nhắn JMS / AMQP truyền thống là họ tồn tại để cung cấp các thông tin sau:
- Xử lý không đồng bộ giữa người sản xuất và người tiêu dùng; và
- Đảm bảo gửi tin nhắn, bao gồm kiên trì, thử lại và dự phòng
Nhưng Akka không cung cấp điều này, mà không có tất cả các cơ sở hạ tầng cần thiết và chi phí hoạt động?
- Trong Akka, tất cả các giao tiếp diễn viên là không đồng bộ và không chặn; và
- Trong Akka,
SupervisorStrategies
tồn tại để thực hiện thử lại, dự phòng và leo thang. Các diễn viên có thể được cấu hình để duy trì hầu như bất kỳ loại cửa hàng nào, nếu đây cũng là một yêu cầu.
Vì vậy, điều này làm tôi tự hỏi: nếu ứng dụng của tôi sử dụng Akka, tôi có bao giờ có nhu cầu đưa các nhà môi giới JMS / AMQP (ví dụ ActiveMQ, RabbitMQ, Kafka) vào hình ảnh không? Nói cách khác, có bao giờ một trường hợp sử dụng nơi một ứng dụng mới Akka-based sẽ sau đó cũng bảo đảm sự ra đời của một mới cụm môi giới JMS / AMQP? Tại sao hay tại sao không?
Lập luận duy nhất là có lẽ ứng dụng Akka của tôi phải tích hợp với một hệ thống khác. Nhưng trong trường hợp đó, mô-đun Akka-Camel cho phép Akka truy cập vào danh sách các khả năng tích hợp gần như vô tận của Camel (TCP, FTP, ZeroMQ, danh sách sẽ tiếp tục và bật ...).
Suy nghĩ?