Cânbằngtảitrong các ứngdụngWeb (phần cuối)
Cân bằngtải dựa trên phần cứng
Các bộ cânbằngtải phần cứng giải quyết được nhiều vấn đề mà chúng ta
vừa phải đối mặt trong phương pháp phần mềm luân chuyển vòng DNS ở
trên thông qua các địa chỉ IP ảo. Bộ cânbằngtải sẽ thể hiện một địa chỉ IP
ảo đối với mạng bên ngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi
máy trong một cluster. Chính vì vậy bộ cânbăngtải này cần phải đưa ra một
địa chỉ IP của toàn bộ các máy tính trong cluster đối với thế giới bên ngoài.
Khi một request đến bộ cânbằng tải, nó sẽ ghi lại header của request để trỏ
đến các máy khác trong cluster. Nếu một máy nào đó bị gỡ bỏ từ cluster thì
request sẽ không chạy một cách rủi ro việc “hit” vào máy chủ đã chết này, vì
tất cả các máy chủ khác trong cluster xuất hiện đều có cùng địa chỉ IP. Địa
chỉ này duy trì giống nhau thậm chí nếu một nút nào đó trong cluster bị
hỏng. Khi một đáp trả được trả về, máy khách sẽ xem đáp trả đang đến từ bộ
cân bằngtải phần cứng. Hay nói theo cách khác thì máy khách sẽ xử lý với
một máy tính đó là bộ cânbằng phần cứng.
Ưu điểm
• Mối quan hệ giữa các máy chủ. Bộ cânbằngtải phần cứng đọc cookie
hoặc các URL đang được đọc trên mỗi một request bởi máy khách. Dựa trên
các thông tin này, nó có thể ghi lại các thông tin header và gửi request đến
nút thích hợp trong cluster, nơi session của nó được duy trì.
Các bộ cânbằngtải này có thể cung cấp mối quan hệ giữa các máy chủ
trong truyền thông HTTP, nhưng không thông qua kênh an toàn như
HTTPS. Trong kênh an toàn, các thông báo được mã hóa SSL và có thể
tránh được bộ cânbằngtải từ việc đọc các thông tin session.
• Khả năng có sẵn cao thông qua hệ thống tự động chuyển đổi dự
phòng. Việc chuyển đổi dự phòng xảy ra khi một nút trong cluster không thể
xử lý một request và chuyển hướng nó đến một nút khác. Có hai kiểu tự
động chuyển đổi dự phòng:
Yêu cầu mức chuyển đổi dự phòng. Khi một nút trong cluster không
thể xử lý một request (thường là vì bị hỏng) thì nó sẽ chuyển request này
sang một nút khác.
Chuyển đổi dự phòng session một cách trong suốt. Khi một lời triệu
gọi thất bại, nó sẽ được định tuyến một cách trong suốt đến một nút khác
trong cluster để hoàn tất sự thực thi.
Bộ cânbằng kiểu này cung cấp chuyển đổi dự phòng mức request; tức là khi
nó phát hiện có một nút nào đó bị sự cố thì bộ cânbằng này sẽ chuyển
hướng tất cả các request theo sau được gửi đến nút này sang một nút tích cực
khác trong cluster. Mặc dù vậy, bất kỳ một thông tin session nào trên nút
chết sẽ bị mất khi các request được chuyển hướng đến một nút mới.
Chuyển đổi dự phòng session trong suốt yêu cầu một số kiến thức về sự thực
thi cho một quá trình trong một nút, vì bộ cânbằngtải phần cứng chỉ có thể
phát hiện các vấn đề mức mạng, không có lỗi. Để thực thi một cách trong
suốt về vấn đề chuyển đổi dự phòng, các nút trong cluster phải kết hợp với
các nút khác và có vùng bộ nhớ chia sẻ hoặc cơ sở dữ liệu chung để lưu tất
cả các dữ liệu session. Cũng chính vì vậy nếu một nút trong cluster có vấn
đề thì một session có thể tiếp tục trong một nút khác.
• Metrics. Vì tất cả các yêu cầu tới một ứngdụngweb đều phải qua hệ thống
cân bằng tải, hệ thống có thể quyết định số lượng session hoạt động, số
lượng session hoạt động được kết nối trongcác trường hợp khác nhau, các
khoảng thời gian đáp ứng, thời gian tối đa điện áp, số lượng session trong
suốt khoảng tối đa điện áp, số lượng session trong suốt khoảng tối thiểu điện
áp… Tất cả các thông tin kiểm định này được sử dụng để tinh chỉnh toàn bộ
hệ thống nhằm tối ưu hiệu suất.
Nhược điểm
Nhược điểm đối với định tuyến phần cứng là giá thành của nó, sự phức tạp
trong vấn đề thiết lập và khả năng hổng ở một vấn đề nào đó trong tương lai.
Vì tất cả request đều được chuyển qua một bộ cânbằngtải phần cứng nên
lỗi yêu cầu của phần cứng đó ảnh hưởng đến toàn bộ site.
Việc cânbằngcác request HTTPS
Như đã đề cập ở trên, rất khó khăn trong vấn đề cânbằngtải và duy trì các
thông tin session của request sử dụng giao thức HTTPS, vì chúng đã được
mã hóa. Bộ cânbằngtải phần cứng không thể chuyển tiếp các request dựa
trên thông tin trong header, cookie hay URL. Có hai cách để giải quyết vấn
đề này:
Proxy của Web Server
Bộ giải mã SSL phần cứng
Bổ sung các proxy của Web Server
Một Web server proxy nằm trước một cluster của các máy chủ Web lấy tất
cả các request và mã hóa chúng. Sau đó nó chuyển hướng chúng đến một nút
thích hợp, dựa trên các thông tin header trong phần header, cookie và URL.
Ưu điểm của Web server proxy là chúng cung cấp cách để có được mối liên
hệ giữa các máy chủ cho các thông báo được mã hóa SSL, không cần bất cứ
một phần cứng mở rộng. Nhưng quá trình SSL mở rộng cần đến một tải mở
rộng trên proxy.
Apache và Tomcat. Trong nhiều hệ thống phục vụ, các máy chủ Apache và
Tomcat làm việc cùng với nhau để quản lý tất cả request HTTP cho các
trang động (JSSP hoặc servlets). Các máy chủ Tomcat cũng quản lý các
trang tĩnh, nhưng trongcác hệ thống phối hợp, chúng thường được thiết lập
để quản lý các request động.
Bạn cũng có thể cấu hình Apache và Tomcat để điều khiển các yêu cầu
HTTPS và trongcáctảicân bằng. Để thực hiện điều này, bạn chạy trường
hợp đa máy chủ Tomcat trên một hoặc nhiều máy. Nếu tất cả máy chủ
Tomcat đều chạy trên một máy, chúng nên được cấu hình để nghe trên các
cổng khác nhau. Để thực thi cânbằng tải, bạn tạo một mẫu Tomcat đặc biệt
gọi là Tomcat Worker.
Như những gì bạn có thể thấy trên hình trên, Web server Apache nhận
request HTTP và HTTPS từ các máy khách. Nếu request là HTTPS, thì Web
server Apache sẽ mã hóa request và gửi nó đến adapter máy chủ Web, máy
chủ sẽ gửi request đến Tomcat Worker, gồm có cả thuật toán cânbằng tải.
Tương tự với Web server proxy, thuật toán này cũng cânbằngtải giữa các
máy như Tomcat.
Bộ giải mã SSL bằng phần cứng
Cuối cùng, chúng ta nên đề cập đến ở đây rằng có một số thiết bị phần cứng
có khả năng giải mã các request SSL. Hướng dẫn chi tiết về chúng không
nằm trong phạm vi bài này, nhưng có thể nói một cách vắn tắt, chúng được
đặt trước bộ cânbằngtải phần cứng và cho phép giải mã thông tin trongcác
cookie, header và URL.
Các bộ giải mã SSL phần cứng này thường hoạt động nhanh hơn các proxy
máy chủ Web và có khả năng mở rộng cao. Tuy nhiên như hầu hết các giải
pháp phần cứng, chúng vẫn gây ra nhiều vấn đề phức tạp trong việc thiết lập
và cấu hình.
hfghfghfghfghfghfgg
. Cân bằng tải trong các ứng dụng Web (phần cuối)
Cân bằng tải dựa trên phần cứng
Các bộ cân bằng tải phần cứng giải quyết được. thuật toán cân bằng tải.
Tương tự với Web server proxy, thuật toán này cũng cân bằng tải giữa các
máy như Tomcat.
Bộ giải mã SSL bằng phần cứng
Cuối