2009-01-28 39 views
5

Kịch bản:Mở rộng máy chủ trạng thái phiên ASP.NET

Trang web được lưu trữ trên ba máy chủ sử dụng IIS trên mỗi máy chủ.

Cả ba máy chủ được nhóm sử dụng cân bằng tải mạng phần mềm mà đi kèm với Windows Server 2003.

Cả ba trang web được cấu hình để lưu trữ các trạng thái phiên trên một máy chủ riêng biệt đã được thiết kế như một "máy chủ của nhà nước" .

Tôi đã được yêu cầu mở rộng "máy chủ trạng thái". Có cách nào mà tôi có thể có nhiều hơn một máy chủ trạng thái và đồng bộ hóa trạng thái giữa chúng, vì vậy nếu một trong các máy chủ trạng thái đi xuống các máy chủ khác sẽ có thể phục vụ thông tin trạng thái?

Trả lời

6

Tôi đã đi để ghi nhớ. Bạn có thể thiết lập nó trên mỗi máy chủ web và sau đó bạn có thể mở rộng nó với mỗi máy chủ web mới mà bạn thêm vào. Tôi đã tìm thấy một vài khách hàng trên codeplex trước đây.

+0

sẽ Memcached thực sự giữ các nút trong trang trại máy chủ đồng bộ? Để ngăn chặn một điểm lỗi, chúng sẽ cần phải được đồng bộ hóa, để khi các mục được thêm vào hoặc bị xóa, tất cả các nút sẽ được thông báo. – baretta

+0

có, d trong memcached là viết tắt của phân phối, vì vậy nó đồng bộ thông tin trên tất cả các nút trong cụm của bạn. – Nick

+0

Ah! Vì vậy, sau đó, ASP.NET State Server IS hoán đổi cho nhau với Memcached! http://stackoverflow.com/questions/290966/is-memcached-interchangeable-with-asp-net-state-server Tôi sợ Memcached sẽ không giữ nút đồng bộ .. – baretta

8

Chúng tôi sử dụng Scale Out State Server cho điều này, nơi tôi làm việc và công việc thật tuyệt vời và chết đơn giản để thiết lập. Tôi hiểu rằng Microsoft cũng đang làm việc trên một sản phẩm tương tự có tên là Velocity, nhưng tôi không có bất kỳ kinh nghiệm nào với nó.

Nhược điểm duy nhất đối với SOSS là bạn phải trả tiền cho nó - nhưng tôi không có gì ngoài những trải nghiệm tuyệt vời tương tác với nhóm bán hàng và hỗ trợ của họ. Nếu bạn kết thúc cấp phép, hãy ủng hộ tôi và cho họ biết rằng Daniel từ Gratis đã gửi cho bạn;)

3

Bạn đang tìm kiếm một công nghệ bộ nhớ đệm được phân phối. Microsoft Velocity là một trong số đó có các ví dụ được đăng bởi Microsoft để thay thế trạng thái phiên ASP.NET mặc định bằng Velocity mà nó có thể được phân phối. Có các nhà cung cấp bộ nhớ đệm khác như Memcache.

Edit: Đang cập nhật câu trả lời này để biết phù hợp hơn với thời điểm hiện tại, loại chức năng được xây dựng vào Windows Azure với sản phẩm AppFabric. Một số thông tin ngắn gọn về điều này có thể được xem tại đây: Windows Server and Azure AppFabric virtual launch May 20th

+0

Vấn đề với Velocity là đó là chưa bao giờ được chính thức phát hành. Đã nhiều năm rồi và tất cả những gì chúng tôi có là CTP. Tôi tự hỏi bạn có thể mong đợi gì từ MS? Ngoài ra blog của nhóm Velocity đã khá lâu trong một thời gian dài và điều này khiến tôi tự hỏi liệu MS sẽ không giết dự án trong một tương lai không xa. –

+0

@Piotr Velocity là tiền thân của AppFabric là một phần của dòng công nghệ Azure, trích dẫn: http://www.hanselman.com/blog/WindowsServerAndAzureAppFabricVirtualLaunchMay20th.aspx Tôi đã cập nhật câu trả lời của mình để bao gồm –

+0

Cảm ơn bạn đã cập nhật, tôi đứng sửa chữa :) –

0

Cơ sở dữ liệu phiên trên máy chủ SQL có thể dễ dàng mở rộng với ít mã & thay đổi cấu hình. Bạn có thể nhúng các phiên asp.net vào một cơ sở dữ liệu phiên và không phân biệt máy chủ web nào trong trang trại của bạn phục vụ yêu cầu, phiên bản máy chủ trạng thái sql dựa trên phiên làm việc của bạn hoạt động hoàn hảo. Đây có lẽ là một trong những cách tốt nhất để mở rộng trạng thái Session ASP.NET bằng cách sử dụng SQL server. Để biết thêm thông tin, đọc vào liên kết

True Scaleout model for session state

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