2012-02-15 31 views
11

Tôi rất chắc chắn vấn đề này đã được giải quyết, nhưng tôi không thể tìm thấy bất kỳ thông tin nào về nó ...Lập trình thêm các nút vào bộ cân bằng tải như Haproxy?

Làm thế nào để quản trị hệ thống thêm nút mới vào bộ cân bằng tải hiện tại và đang chạy? Hãy nói rằng tôi có một cân bằng tải chạy và đã cân bằng nói máy chủ API của tôi giữa hai trường hợp EC2, và đột nhiên có một tăng đột biến giao thông và tôi cần một nút thứ ba trong cân bằng tải nhưng tôi đang ngủ ... Nó sẽ là tuyệt vời nếu tôi đã có một cái gì đó giám sát có lẽ sử dụng RAM và một số chỉ số hiệu suất quan trọng cho tôi biết khi nào tôi nên có một nút ... Điện thoại

Tôi tự tin rằng đây là có thể và thậm chí tầm thường để làm với node-http-proxydistribute, nhưng tôi muốn biết nếu điều này có thể làm với HAproxy và/hoặc Nginx ... Tôi biết cân bằng tải đàn hồi của Amazon có lẽ là đặt cược tốt nhất của tôi nhưng tôi muốn làm điều đó trên của riêng tôi (tôi muốn đẻ trứng các cá thể từ rackspace, EC2, Joyent và có thể là những người khác vì nó thuận tiện). Một lần nữa, sinh ra một nút là dễ dàng, tôi muốn biết làm thế nào để thêm nó vào haproxy.cfg hoặc một cái gì đó tương tự với Nginx mà không cần phải tải lại toàn bộ proxy, và làm điều đó programatically. Bash kịch bản là đặt cược tốt nhất của tôi cho điều này nhưng nó vẫn phải tải lại toàn bộ proxy đó là xấu vì nó mất kết nối ...

Trả lời

8

Bạn có một vài câu hỏi trong đó. Để "thêm nút vào haproxy mà không cần khởi động lại":

Điều tôi làm cho vấn đề tương tự là chuẩn bị trước tệp cấu hình với tên máy chủ .. ví dụ: web01, web02 ... web20 ngay cả khi tôi chỉ có 5 máy chủ web vào thời điểm đó. Sau đó, trong tập tin host của tôi, tôi lập bản đồ cho các ips thực tế của các máy chủ web.

Để thêm một máy chủ mới, bạn chỉ cần tạo một mục nhập cho nó trong tệp máy chủ và nó sẽ bắt đầu vượt qua kiểm tra sức khỏe và được thêm vào.

Để phối hợp tự động, nó thực sự phụ thuộc vào môi trường của bạn và có thể bạn sẽ phải viết một thứ gì đó phù hợp với nhu cầu của mình. Có giải pháp trả tiền (Scalr đến tâm trí) để xử lý dàn nhạc quá.

+0

Đó là một ý tưởng rất hay! Cảm ơn! –

7

Những gì tôi làm: Tôi có một dòng trong phần backend của tôi trong haproxy.cfg mà nói:

# new webservers here 

Và với một kịch bản sed tôi cập nhật haproxy.cfg với một cái gì đó như:

sed -i -e "/new webservers here/a\ server $ip_address $ip_address:12080 check maxconn 28 weight 100" 

Và sau đó tải lại haproxy. Hoạt động minh bạch.

+1

Đó là một cách được khuyến nghị để làm điều đó? Không có vẻ thực tế với tôi. Mặc dù, nó hoạt động. – hugofcampos

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