2010-11-10 6 views
7

Chúng tôi có một ứng dụng web lưu trữ tất cả dữ liệu trang web trong HttpRuntime.Cache.Có thể chia sẻ HttpRuntime.Cache giữa nhiều máy chủ web không?

Hiện tại, chúng tôi cần triển khai ứng dụng trên 2 máy chủ web cân bằng tải. Đây là trường hợp, mỗi máy chủ web sẽ có bộ nhớ cache riêng, không lý tưởng vì nếu người dùng yêu cầu dữ liệu từ máy chủ web, nó sẽ được lưu vào bộ nhớ cache, nhưng có yêu cầu tiếp theo có thể truy cập webserver2 và dữ liệu của họ trước đó yêu cầu được lưu trong bộ nhớ cache sẽ không khả dụng.

Có thể sử dụng nhà cung cấp bộ nhớ cache dùng chung để chia sẻ HttpRuntime.Cache giữa hai máy chủ web hoặc sao chép bộ đệm giữa chúng để bộ nhớ cache tương tự có sẵn trên cả hai máy chủ web không? Nếu có, tôi có thể làm gì để giải quyết vấn đề này?

Trả lời

6

Không, bạn không thể chia sẻ bộ nhớ cache ASP.NET tích hợp, nhưng bạn có thể sử dụng một cái gì đó như memcached hoặc AppFabric thay thế.

0

Đừng đến đó. Bình thường, cache là một đối tượng tĩnh, chỉ sống trong AppDomain. Cập nhật thủ công những điều này là một thế giới của nỗi đau và tư vấn mạnh mẽ chống lại.

Bạn có thể sử dụng một số giải pháp lưu vào bộ nhớ cache nằm trước máy chủ của bạn cho loại mục đích đó.

1

Không, điều đó là không thể. Bạn phải sử dụng bộ nhớ cache được phân phối như Microsoft AppFabric Caching hoặc sản phẩm mã nguồn mở rất popup memcached.

0

Có vẻ như câu hỏi của bạn là bạn đã có dữ liệu người dùng là bộ nhớ cache? Trong trường hợp đó tôi muốn ở bên Aliostad và nói đừng đến đó!

HttpRuntime cache nên được sử dụng cho các mục tĩnh nhưng thường được sử dụng từ cơ sở dữ liệu, mục đích chính là ngăn chặn truy cập cơ sở dữ liệu xảy ra theo yêu cầu bất kể người dùng ... combobox hoặc cấu hình certian thiết lập

Nếu bạn thực sự cần bộ nhớ đệm cho dữ liệu người dùng, sau đó như trên memcached, AppFabric hoặc NVelocity

có lớp bộ nhớ đệm phù hợp cho các nhu cầu khác nhau, chỉ có 2 máy chủ web gợi ý rằng bạn không được nêu ra yêu cầu khung bộ nhớ đệm phân tán ở trên.

Tải máy chủ là gì và yếu tố giới hạn, CPU, RAM, Băng thông mạng là gì? Trên DB hoặc máy chủ web của bạn? Mỗi trong số này cho thấy một chiến lược bộ nhớ đệm khác nhau.