2015-06-01 23 views
5

Tôi đang cố gắng hiểu khi nào và ở đâu để sử dụng khác nhau built-in Akka mailboxes cũng như khi thích hợp để cuộn của riêng bạn. Tuy nhiên, không nơi nào trên trang đó nó giải thích "hộp thư bị chặn" thực sự là gì, hoặc cách nó hoạt động khác với hộp thư không bị chặn. Ngoài ra, trang đó phân loại hộp thư là "chặn" so với "không chặn". Và trong khi tôi có ý tưởng mạnh mẽ về ý nghĩa của điều này (một tin nhắn có thể được gửi đến một hộp thư trừ khi hộp thư đầu tiên được dọn sạch) Tôi không chắc chắn 100% rằng tôi hiểu điều này. Vì vậy, nhìn thấy rằng tôi không có ý tưởng những gì các tài liệu có nghĩa là khi họ phân loại một hộp thư như bị chặn hoặc chặn, nó là khó khăn cho tôi để nói khi nào tôi nên sử dụng từng loại.Khi nào sử dụng nhiều loại hộp thư Akka khác nhau

Ngoài ra, có vẻ như đó là hành vi mặc định của Akka để xóa hộp thư của diễn viên nếu diễn viên đó được khởi động lại. Tôi muốn ngăn chặn điều này, nhưng không chắc chắn nếu giải pháp là sử dụng một trong các loại hộp thư được tích hợp này (không đề cập đến sự kiên trì của thông báo được đề cập trên trang này) hoặc bằng cách nào đó sử dụng các diễn viên liên tục để thực hiện điều này.

Trả lời

6

Trước tiên, nếu diễn viên gặp sự cố và được khởi động lại, bạn chỉ mất thông báo hiện đang được xử lý chứ không phải toàn bộ hộp thư.

Hộp thư bị chặn có giới hạn về số lượng thư có thể xếp hàng trước khi bắt đầu chặn người gửi và không cho phép mục nếu hàng đợi không giảm trong khi người gửi đang cố gắng đặt mục. Nếu bạn có lo ngại về bộ nhớ và bạn có thể đối phó với việc mất tin nhắn tiềm năng thì bạn có thể muốn một cái gì đó như thế này. Một hộp thư không bị chặn không có giới hạn về dung lượng ở tất cả vì vậy nó có thể có thể bị các vấn đề bộ nhớ nếu nó bị ngập.

Cho dù nó bị chặn hay không sẽ ảnh hưởng đến việc nó có bị chặn hay không. Chặn nói chung là không tốt cho hiệu suất và nên tránh nếu tình hình không gọi cho một hộp thư bị chặn. Đó là lý do tại sao hộp thư mặc định là không bị chặn; nó sẽ mang lại hiệu suất tốt hơn nhiều so với một đối tác bị chặn.

Hộp thư không giới hạn người tiêu dùng duy nhất sẽ rất có thể là nhanh nhất vì nó được tối ưu hóa để chỉ có một người tiêu dùng từng loại bỏ hàng đợi. Điều này có nghĩa là bạn không thể sử dụng bộ điều phối cho phép một cá thể tác nhân đánh cắp các mục từ một hộp thư tác nhân khác (phân phối công việc/trộm cắp) nhưng nếu bạn không quan tâm thì hộp thư này có thể là đặt cược tốt nhất cho hiệu suất.

Hộp thư ưu tiên dựa trên cho phép bạn cung cấp mã cho phép vị trí trong hàng đợi thay đổi tùy thuộc vào một số thuộc tính trên chính thư đó. Điều này cho phép bạn tự xác định mức ưu tiên của các thông báo và sau đó điều này sẽ chuyển các mục ưu tiên cao hơn lên trước hàng đợi bất kể các quy tắc FIFO bình thường.

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