2011-09-06 28 views
5

Khi nào tôi nên sử dụng Actors vs. Remote Actors in Akka?Khi nào nên sử dụng diễn viên địa phương và từ xa?

Tôi hiểu rằng cả hai có thể mở rộng quy mô máy, nhưng chỉ các diễn viên từ xa mới có thể mở rộng quy mô, vì vậy có sử dụng sản phẩm thực tế nào của diễn viên bình thường không?

Nếu diễn viên từ xa chỉ có chi phí thiết lập ban đầu nhỏ và không có bất kỳ chi phí chính nào khác cho diễn viên bình thường, tôi nghĩ rằng việc sử dụng một diễn viên từ xa sẽ là tiêu chuẩn, vì nó có thể mở rộng và một cách dễ dàng. Thậm chí nếu không bao giờ cần phải mở rộng quy mô sản xuất, thì sẽ tốt hơn nếu có tùy chọn (nếu nó không đi kèm với hành lý).

Bất kỳ thông tin chi tiết nào về thời điểm sử dụng Diễn viên so với diễn viên từ xa sẽ được đánh giá cao.

Trả lời

8

Các diễn viên từ xa không thể mở rộng quy mô, chúng chỉ là các tham chiếu từ xa đến một diễn viên cục bộ trên một máy khác.

Đối với Akka 2.0, chúng tôi sẽ giới thiệu các diễn viên được nhóm, cho phép bạn viết một ứng dụng Akka và mở rộng quy mô chỉ bằng cấu hình.

2

Các diễn viên thông thường có thể được sử dụng để gửi thư trong dự án cục bộ. Đối với các diễn viên từ xa, bạn có thể sử dụng nó trong việc gửi tin nhắn đến các dự án phụ thuộc được kết nối với dự án gửi tin nhắn.

Vui lòng tham khảo vào đây để Actors Akka từ xa

http://doc.akka.io/docs/akka/snapshot/scala/remoting.html

1

Câu hỏi đặt ra yêu cầu: "Nếu một diễn viên từ xa chỉ có một thiết lập ban đầu nhỏ trên cao và không có bất kỳ chi phí lớn khác thì tôi sẽ nghĩ rằng việc sử dụng một diễn viên từ xa sẽ là tiêu chuẩn ". Tuy nhiên, Fallacies of distributed computing làm cho điểm rằng nó là một lỗi thiết kế để giả định rằng remoting với bất kỳ công nghệ không có phí. Bạn có chi phí sao chép các tin nhắn vào byte và truyền nó qua giao diện mạng. Bạn cũng có tất cả sự phức tạp của các quy trình khác nhau đang hoạt động, bị ngừng hoạt động, bị trì hoãn hoặc không thể truy cập được và mạng có trục trặc dẫn đến thư bị mất, trùng lặp hoặc sắp xếp lại.

This great article có ví dụ thực tế về các lỗi mạng lạ khiến cho việc truy cập từ xa trở nên khó khăn để tạo bằng chứng đạn. Dự án Akka dẫn đầu Roland Kuln trong số free video course about akka của ông nói rằng trong kinh nghiệm của mình cho mỗi 1T tin nhắn mạng được gửi đi, ông thấy một tham nhũng. Notes on Distributed Systems for Young Bloods nói rằng "các hệ thống phân tán có xu hướng cần thực tế, không được mô phỏng, phân phối để loại bỏ lỗi của chúng" vì vậy ngay cả các kiểm tra đơn vị tốt cũng không tạo ra một hệ thống hoàn hảo. Có rất nhiều lời khuyên rằng từ xa không phải là "miễn phí" nhưng công việc khó khăn để có được hoàn hảo.

Nếu bạn cần sử dụng tính năng truy cập từ xa để có sẵn hoặc chuyển sang tỷ lệ lớn, hãy lưu ý rằng akka thực hiện giao hàng at-least-once với khả năng trùng lặp. Vì vậy, bạn phải đảm bảo rằng các thư trùng lặp không tạo ra kết quả xấu.

Thời điểm bạn bắt đầu sử dụng điều khiển từ xa bạn có hệ thống phân phối tạo ra những thách thức được thảo luận trong Distributed systems for fun and profit. Trừ khi bạn đang làm rất đơn giản những thứ như máy tính không quốc tịch là không đáng tin cậy cho các thông điệp trùng lặp, mọi thứ trở nên phức tạp. Một trong những bài tập về khóa học video akka đó ở liên kết ở trên là tạo một kho khóa-giá trị được sao chép có thể xử lý các thư bị mất bằng cách tự viết logic. Nó xa là một nhiệm vụ dễ dàng. Nhà nước phân phối trên các quy trình khác nhau rất khó, các diễn viên đóng gói nhà nước, do đó việc phân phối các diễn viên có thể rất khó, tùy thuộc vào sự nhất quán và các yêu cầu về tính khả dụng của hệ thống bạn đang xây dựng.

Điều này tất cả ngụ ý rằng nếu bạn có thể tránh điều khiển từ xa và đạt được những gì bạn cần để đạt được thì bạn sẽ khôn ngoan để tránh nó. Nếu bạn cần remoting thì Akka làm cho nó dễ dàng do location transparency của nó. Vì vậy, trong khi nó là một hộp công cụ tuyệt vời để mang theo bên mình trong công việc; bạn nên kiểm tra kỹ xem công việc có cần tất cả các công cụ hay chỉ những công cụ đơn giản nhất trong hộp.

Các vấn đề liên quan