Gần đây tôi đã thêm một số khả năng cân bằng tải vào một phần mềm mà tôi đã viết. Nó là một ứng dụng nối mạng thực hiện một số dữ liệu crunching dựa trên đầu vào đến từ một cơ sở dữ liệu SQL. Kể từ khi crunching có thể được khá nhiều tôi đã thêm khả năng có nhiều trường hợp của ứng dụng này đang chạy trên các máy chủ khác nhau để chia tải nhưng vì bây giờ cân bằng tải là một hành động thủ công. Người dùng phải chỉ định các trường hợp nào lấy phần nào của miền đầu vào.Giao thức/Thuật toán nhịp tim hoặc các phương pháp hay nhất
Tôi muốn chuyển sang cấp độ tiếp theo và lập trình các trường hợp tự động thương lượng việc thu thập dữ liệu đầu vào và nhận ra nếu một trong số đó "biến mất" (đã bị lỗi hoặc bị tắt nguồn) để các trường hợp còn lại có thể thực hiện khối lượng công việc của cá thể không thành công. Để thực hiện điều này, tôi đang xem xét sử dụng một giao thức nhịp tim đơn giản giữa các cá thể để xác định ai đang trực tuyến và ai không và trong khi điều này không phức tạp đến mức tôi muốn biết liệu có bất kỳ mạng nhịp tim nào đã được thiết lập hay không giao thức (dựa trên UDP, TCP hoặc cả hai). Rõ ràng điều này xảy ra rất nhiều trong thế giới mạng với công nghệ clustering, fail-over và high-availability vì vậy tôi đoán cuối cùng tôi muốn biết liệu có thể có bất kỳ giao thức hoặc thuật toán đã được thiết lập nào mà tôi cần biết hay không. hoặc thực hiện.
EDIT
Dường như, dựa trên các câu trả lời, mà một trong hai có được thành lập không tốt giao thức trái tim beat hay mà không ai biết về họ (mà có ngụ ý rằng họ không nên cũng được thành lập sau khi tất cả) trong trường hợp này, tôi sẽ tự cuộn.
Mặc dù không có câu trả lời nào cung cấp những gì tôi đang tìm kiếm cụ thể tôi sẽ bỏ phiếu cho số Matt Davis's answer vì nó gần nhất và ông đã chỉ ra một ý tưởng hay để sử dụng phát đa hướng.
Cảm ơn tất cả vì đã dành thời gian của bạn ~
Bạn có biết nếu có thể tùy chỉnh thông điệp nhịp tim gốc của WebLogic, để thêm một số thông tin bổ sung như CPU hiện tại và/hoặc tải mạng không? (để cho phép các thuật toán cân bằng tải sử dụng thông tin đó để tránh quá tải máy chủ đang gặp khó khăn với nhiều yêu cầu hơn) – XpiritO
Đó là một câu hỏi cho Pascal (http://stackoverflow.com/questions/1442189/heartbeat-protocols-algorithms-or- thực hành tốt nhất/1442255 # 1442255). Tôi không quen thuộc với WebLogic - trong trường hợp của tôi, tôi đã kết thúc bằng cách sử dụng những gì tôi đã bắt đầu làm việc trên đó là một giải pháp tùy chỉnh dựa trên UDP. –