2010-08-11 26 views
17

Cách hiệu quả nhất để làm cho trang web ứng dụng web ASP.NET MVC sẵn sàng.Tạo ứng dụng ASP.NET MVC Web Farm Ready

Quan trọng nhất là chia sẻ thông tin người dùng hiện tại (Ngữ cảnh) và (không quan trọng) các đối tượng được lưu trong bộ nhớ cache chẳng hạn như các mục tra cứu (Hoa, Loại đường phố, hạt, v.v ...).

Tôi đã nghe/đọc MemCache nhưng chưa thấy một cách áp dụng đơn giản (tài liệu) về cách triển khai và kiểm tra nó.

Trả lời

21

Yêu cầu ngữ cảnh
Mọi yêu cầu truy cập trang trại được phục vụ bởi máy chủ IIS có sẵn. Bối cảnh được tạo ra ở đó và toàn bộ yêu cầu được phục vụ bởi cùng một máy chủ. Vì vậy, ngữ cảnh không phải là một vấn đề. Yêu cầu là một đường dẫn thực thi không trạng thái nên nó không cần chia sẻ dữ liệu với các máy chủ khác dưới bất kỳ hình dạng hoặc hình thức nào. Nó sẽ được phục vụ từ đầu đến cuối bởi cùng một máy.
Thông tin người dùng được đọc từ cookie và được xử lý bởi máy chủ phục vụ yêu cầu. Nó phụ thuộc sau đó nếu bạn cache đối tượng người dùng hoàn thành một nơi nào đó.

phiên
Nếu bạn sử dụng TempData từ điển mà bạn nên biết rằng nó được lưu trữ bên trong Session từ điển. Trong một trang trại máy chủ có nghĩa là bạn nên sử dụng các phương tiện khác so với các phiên InProc, vì chúng không được chia sẻ giữa các máy chủ IIS trên trang trại. Bạn nên định cấu hình các trình quản lý phiên khác sử dụng DB hoặc các trình quản lý khác (máy chủ trạng thái, v.v.).

Bộ nhớ cache
Khi nói đến bộ nhớ cache thì đó là một câu chuyện khác. Để làm cho nó hiệu quả như bộ nhớ cache có thể cũng nên được phục vụ. Theo mặc định thì không. Nhưng nhìn vào bộ nhớ cache nó hầu như không có nghĩa là khi không có bộ nhớ đệm, nó sẽ được đọc và lưu trữ trong bộ đệm ẩn. Vì vậy, nếu một máy chủ trang trại máy chủ cụ thể không có một số đối tượng bộ nhớ cache nó sẽ tạo ra nó. Trong thời gian tất cả chúng sẽ cache một số dữ liệu được sử dụng công khai được chia sẻ.
Hoặc ... Bạn có thể sử dụng các thư viện như memcached (như bạn đã đề cập) và tận dụng bộ nhớ cache dùng chung. Có một số ví dụ trên mạng làm thế nào để sử dụng nó.

Nhưng các giải pháp này đều mang lại thêm chi phí cho một số thứ (như xử lý quy trình mạng và xử lý thứ ba và tìm nạp dữ liệu, v.v.) nếu không có gì khác. Vì vậy, bộ nhớ cache mặc định là nhanh nhất và nếu bạn rõ ràng cần bộ nhớ cache được chia sẻ thì hãy quyết định một bộ nhớ cache. Không chia sẻ bộ nhớ cache trừ khi thực sự cần thiết.

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