2010-10-05 37 views
5

Tôi quan tâm đến công nghệ lưu trữ và/hoặc bộ nhớ cache được phân phối nguồn mở đáp ứng các yêu cầu sau.công nghệ bộ nhớ đệm được phân phối

  • Nhiều trường hợp cân bằng tải của ứng dụng web Java (có lẽ trên Amazon EC2)
    • Có thể cho số trường hợp được thay đổi theo thời gian cho nhân rộng.
  • Khi yêu cầu đi kèm với id FOO, sự kiện được lưu trong bộ nhớ trong một khoảng thời gian.
    • Khoảng thời gian mà sự kiện được lưu trong bộ nhớ cache được chỉ định trong tải trọng yêu cầu và khác nhau giữa các yêu cầu.
    • Thời gian tương đối nhỏ (theo thứ tự phút).
    • Không cần phải có sự bền bỉ. Trong trường hợp hiếm hoi mà một cái gì đó kịch tính xảy ra và máy chủ phải được khởi động lại, nó là ok cho nó để quên đi các sự kiện trong quá khứ.
  • Các thông tin về yêu cầu cần được truyền đến tất cả các trường máy chủ
    • Truyền bá thông tin không phải ảnh hưởng đáng kể hiệu suất của các máy chủ, và đặc biệt là hưởng ứng độ trễ. Nó phải là không đồng bộ từ xử lý yêu cầu. Tuy nhiên, nó phải được hợp lý nhanh chóng và quy mô cho số lượng lớn các yêu cầu.
    • Không sao cho các phiên bản máy chủ khác nhau không đồng bộ. I E. có thể chấp nhận được rằng trong một khoảng thời gian ngắn (theo thứ tự giây) máy chủ cá thể 2 không biết rằng FOO xảy ra trên máy chủ phiên bản 1 cho đến khi thông tin đó được truyền cho nó.

Mọi ý tưởng sẽ được đánh giá cao. Nếu bất kỳ giải pháp nào yêu cầu cấu hình/tùy chỉnh cụ thể để phù hợp với yêu cầu, vui lòng đề cập đến những gì tôi cần làm.

EDIT Tôi không ngụ ý rằng các câu trả lời hiện tại không liên quan, nhưng tôi không rõ ràng trong câu hỏi của mình. Xin đừng chỉ trỏ đến mọi thư viện MQ và JSR-107 dưới ánh mặt trời. Chỉ những người mà bạn có lý do để tin rằng mới đáp ứng được yêu cầu của tôi.

+0

Xin vui lòng để cải thiện các tiêu đề của câu hỏi. – ykaganovich

Trả lời

3

EhCache có hỗ trợ cho distributed and replicated caching.

Ngoài ra, bạn có thể đặt những thứ như thời gian sống khi các phần tử được thêm vào bộ nhớ cache.

0

bạn cũng có thể kiểm tra NCache, nó là một phân phối bộ nhớ cache mà tương thích với cả .NET & Java apps

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