2011-10-30 30 views
26

Ai đó có thể giải thích cho tôi mức độ sẵn sàng cao ("HA") hoạt động cho một ứng dụng web ... bởi vì tôi giả sử HA có nghĩa là không tồn tại một điểm lỗi nào.Ứng dụng web: Tính khả dụng cao/Làm thế nào để ngăn chặn một điểm lỗi?

Tuy nhiên, ngay cả khi sử dụng cân bằng tải - không phải là điểm lỗi duy nhất?

+0

Không phải khi bạn có hai cân bằng tải thiết lập để chuyển đổi dự phòng. –

+2

@Dave Newton, nhưng làm cách nào 2 cân bằng tải trả lời yêu cầu duy nhất sắp tới? Tôi đang cố gắng tưởng tượng, vì vậy, tôi muốn truy cập http://example.com, trình duyệt của tôi giải quyết địa chỉ IP và sau đó gửi một yêu cầu duy nhất tới IP của example.com, làm thế nào có thể nhiều máy chủ (tải cân bằng) có thể "trả lời" yêu cầu web đến từ trình duyệt của tôi? Tại một thời điểm nào đó, nó có một phần cứng duy nhất đó là điểm thất bại? – nickb

+0

Họ không; một. Nếu người ta bắt đầu thất bại, người kia sẽ tiếp quản. Có rất nhiều cơ chế để xử lý điều này, tất cả nằm ngoài phạm vi của một câu hỏi SO, thực sự. Desmond đã nói khá nhiều rồi. –

Trả lời

12

Tôi đã tìm thấy bài viết này về đề tài này: http://www.tenereillo.com/GSLBPageOfShame.htm

Về cơ bản nếu bạn không yêu cầu phiên dính kéo dài lâu bạn có thể cấu hình các máy chủ DNS của bạn để trả lại nhiều bản ghi A (địa chỉ IP) cho trang web của bạn.

Trình duyệt web đủ thông minh để thử tất cả các địa chỉ cho đến khi tìm được địa chỉ hoạt động.

1

Kiến trúc HA là toàn bộ trường và nhiều sách được viết trên đó nên khó trả lời trong một đoạn ngắn.

Để tổng hợp tình huống lý tưởng, bạn sẽ sử dụng nhiều máy chủ, được kết nối với một lớp nhiều bộ cân bằng tải. Các nút và LB sẽ được đặt trong một vài trung tâm dữ liệu khác nhau và được kết nối với các đường trục mạng khác nhau. Lý tưởng nhất là các trung tâm dữ liệu sẽ được đặt trên toàn thế giới.

Tóm lại, tất cả các thành phần sẽ có dự phòng, bao gồm cả bộ cân bằng tải.

Đối với một điểm khởi đầu, xem Wikipedia cho High Availability Cluster

+1

Nhưng tại một số thời điểm, yêu cầu duy nhất từ ​​trình duyệt web của người dùng sẽ phải được chia thành nhiều bộ cân bằng tải. Tại thời điểm này, nó sẽ không phải là một điểm duy nhất của thất bại?Có nghĩa là, làm thế nào có thể cho một yêu cầu duy nhất để đi vào nhiều cân bằng tải? – nickb

+1

Có, yêu cầu của người dùng sẽ kết thúc bằng MỘT bộ cân bằng tải trực tuyến và có thể LB sẽ giảm xuống ngay khi nó đang xử lý yêu cầu và mất nó. Điều quan trọng là địa chỉ HA là nếu người dùng ngay lập tức thử lại, anh ta sẽ kết thúc bằng một LB khác trực tuyến và thành công, những người dùng khác của hệ thống cũng vậy. HA quan tâm đến toàn bộ hệ thống có sẵn (tất cả các lỗi tạm thời), thay vì bất kỳ yêu cầu cụ thể nào thành công. –

+2

Làm thế nào để bạn làm điều đó? DNS round robin? – nickb

0

Nó hoạt động theo cách sau mà bạn thiết lập hai máy chủ HA Proxy với nhịp tim, vì vậy khi một thất bại (dừng lại trả lời các thắc mắc), nó được loại bỏ khỏi cluster. Yêu cầu từ HA Proxy có thể được chuyển tiếp tới máy chủ web theo kiểu vòng tròn, và nếu một máy chủ web bị lỗi, máy chủ HA Proxy sẽ không cố gắng liên lạc với máy chủ đó cho đến khi nó hoạt động. Máy chủ web lưu trữ tất cả thông tin động trong cơ sở dữ liệu, được sao chép trên hai phiên bản MySQL. Như bạn có thể thấy, HA Proxy và Cluster MySQL (hoặc đơn giản là nhân rộng MySQL) cũng như IP Clustering ở đây là chìa khóa.

example high availabibility cluster

+7

Nhưng trong sơ đồ của bạn, điều tôi không hiểu là, HAPRoxy hoạt động như thế nào? Khi Client DNS giải quyết, nó chỉ có thể giải quyết cho một máy đơn lẻ. Vì vậy, HAProxy bằng cách nào đó chia sẻ cùng một địa chỉ IP? – nickb

+0

@nickb như Dave Newton đã trả lời ở trên, DNS có thể được định cấu hình để trả lại nhiều địa chỉ IP cho một tên máy chủ bên ngoài. Sau đó, khách hàng có thể thực hiện nhiều lần thử liên hệ với dịch vụ. Xem 'HỒ SƠ' và 'HỒ SƠ CNAME' liên quan đến cấu hình DNS. –

+0

@nickb Bạn nói đúng, dịch vụ HA có thể cho phép HA Proxies chia sẻ một địa chỉ IP ảo mà Khách hàng sẽ kết nối. Các dịch vụ HA cho unix có thể được (u) cá chép và keepalived, RedHat Cluster Suite hoặc Pacemaker, vv Xem thêm: http://serverfault.com/questions/686878/how-to-make-redundant-load-balancers – Yuci

5

Nói cách đơn giản, tính khả dụng cao có thể được định nghĩa là chạy hệ thống 24 * 7 mà không có thời gian chết ngay cả khi có lỗi phần cứng và phần mềm. Nói cách khác, ứng dụng dung sai lỗi. Điều này giúp đảm bảo việc sử dụng ứng dụng không bị gián đoạn cho người dùng dự định.

enter image description here

Tìm hiểu thêm về High Availability Deployment Architecture

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