Nhược điểm của phiên dính với cân bằng tải là gì?


13

Chúng tôi có một trang web máy IIS7 hoạt động rất tốt. Trước mặt họ là bộ cân bằng tải phần cứng F5 Big-IP , cũng hoạt động tốt :)

văn bản thay thế
(nguồn: www.f5.com )

Hiện tại chúng tôi đang sử dụng một ASP.NET State Serviceđể xử lý trạng thái OutProc của chúng tôi . Điều này là bắt buộc khi bạn có một trang trại web để duy trì bất kỳ loại thông tin phiên nào.

Tôi đã tự hỏi liệu chúng ta có thể có các phiên dính trên F5 Big-IP hay không và do đó thay đổi từ OutProc trở lại InProc? Nếu vậy, nhược điểm của điều này là gì? Tôi biết nhược điểm của InProc so với OutProc, vì vậy đừng lo lắng về việc giải thích điều đó. Tôi quan tâm nhiều hơn đến những ưu / nhược điểm của các phiên dính với F5 Big-IP .

Bất cứ ai có thể làm sáng tỏ và / hoặc kinh nghiệm?

Câu trả lời:


15

Có hai nhược điểm chính:

  1. Tải của bạn không được phân bổ đều. Phiên dính sẽ dính, do đó tên. Mặc dù các yêu cầu ban đầu sẽ được phân phối đồng đều, nhưng bạn có thể sẽ có một số lượng đáng kể người dùng dành nhiều thời gian hơn những người khác. Nếu tất cả những thứ này ban đầu được đặt thành một máy chủ, thì máy chủ đó sẽ có tải nhiều hơn. Thông thường, điều này thực sự sẽ không có tác động lớn và có thể được giảm thiểu bằng cách có nhiều máy chủ hơn trong cụm của bạn.

  2. Proxy tập hợp người dùng vào một IP duy nhất, tất cả sẽ được gửi đến một máy chủ. Mặc dù điều đó thường không gây hại, nhưng ngoài việc tăng tải máy chủ riêng lẻ, proxy cũng có thể hoạt động trong một cụm. Một yêu cầu vào F5 của bạn từ một hệ thống như vậy sẽ không nhất thiết phải được gửi trở lại cùng một máy chủ nếu yêu cầu đến từ một máy chủ proxy khác trong cụm proxy của họ.

AOL đã có lúc sử dụng các cụm proxy và thực sự say sưa với các bộ cân bằng tải và các phiên dính. Hầu hết các bộ cân bằng tải hiện sẽ cung cấp các phiên dính dựa trên phạm vi mạng C-Class hoặc với trường hợp F5, các phiên dính dựa trên cookie lưu trữ nút cuối trong cookie yêu cầu web.

Mặc dù các phiên dựa trên cookie nên hoạt động, tôi đã gặp một số vấn đề với chúng và thường chọn các phiên dựa trên IP. TUY NHIÊN LỚN: Tôi chủ yếu làm việc trên các ứng dụng nội bộ - DMZ milage có thể khác nhau.

Tất cả những gì đã được nêu, chúng tôi đã có một số thành công lớn với các trang web chạy F5 với các phiên dính và các phiên In-Proc.

Bạn cũng có thể muốn xem một trong các hệ thống bộ nhớ đệm phân tán trong bộ nhớ như Memcached hoặc Velocity để thay thế cho phiên được lưu trữ trong SQL hoặc dịch vụ bộ nhớ ngoài. Bạn tiến gần đến tốc độ của bộ nhớ trong với khả năng chạy nó trên một số máy chủ.


Bên cạnh CPU, có cách nào để kiểm tra các kết nối hiện tại và / hoặc băng thông tự nhiên trên máy Windows 2008 với IIS7 ... để xem máy chủ có bị quá tải / bận không? Về cơ bản, bạn sử dụng số liệu nào để đảm bảo máy chủ không bị nổ tung?
Pure.Krom

Chúng tôi đã sử dụng hỗn hợp IP dính và các phiên cookie dính khá lâu và thấy phân phối không đồng đều, nhưng không khủng khiếp như vậy. Cụm proxy AOL là một cơn ác mộng đối với phân cụm IP và chúng tôi đã phải ngoại lệ mã hóa cứng.
ericslaw

Bộ đếm hoàn hảo bản địa sẽ hiển thị các kết nối HTTP hoạt động.
Christopher_G_Lewis

@Christopher_G_Lewis Bạn có muốn giải thích một chút về các vấn đề bạn gặp phải với các phiên dựa trên cookie trên F5 không?
Eugene Beresovsky


4

Ngoài câu trả lời tuyệt vời từ Christopher, các phiên dính có nghĩa là bạn đã mất một vài lợi ích to lớn của các máy chủ dự phòng - khả năng giảm một hoặc nhiều hơn để bảo trì và minh bạch khi gặp sự cố hệ thống.

Tôi coi các phiên dính là một chỉ báo mạnh về kiến ​​trúc ứng dụng kém và / hoặc lập trình kém. "Tránh bằng mọi giá" là phương châm của tôi.


Suy nghĩ tuyệt vời về việc bảo trì. Chúng tôi ném một DRAIN trên một máy chủ từ lâu trước khi đưa nó ra khỏi cụm. DRAIN có nghĩa là các phiên hiện tại được xử lý, nhưng không có phiên mới nào bắt đầu trên máy chủ đó.
Christopher_G_Lewis

Rất may, không ai phải bảo trì trong thời gian ngắn, máy chủ cũng không bao giờ chết đột ngột (khiến tất cả các phiên bị kẹt với máy chủ đó đột nhiên vô dụng - tôi cá là khách hàng thích điều đó).
womble

Bạn có thể DRAIN từ máy chủ mà không phải thực hiện bất kỳ cấu hình nào trên F5 không? Về cơ bản, chúng tôi không có quyền truy cập vào F5 (nó được quản lý cho chúng tôi, trong một kịch bản lưu trữ được quản lý) .. nhưng chúng tôi có quyền truy cập đầy đủ vào các máy chủ web của chúng tôi .. vì vậy bạn có thể DRAIN bằng cách thả tệp hoặc một cái gì đó vào trang web không?
Pure.Krom

F5 của chúng tôi xác định máy chủ lên / xuống máy chủ / thoát qua một tệp văn bản trong trang web - bối cảnh của tệp là "LÊN / XUỐNG / DRAIN". Kiểm tra nhật ký IIS của bạn để xác định những gì họ đang xem. Lưu ý rằng đôi khi F5 chỉ thực hiện một SYN / ACK trên cổng TCP / IP, trong trường hợp đó, bạn sẽ phải có hoster của bạn thay đổi cấu hình của F5.
Christopher_G_Lewis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.