2010-09-15 34 views
5

Tôi đang viết một ứng dụng proxy nhỏ cần được dự phòng, ví dụ: proxy chính sẽ chạy trên một máy chủ và máy chủ dự phòng sẽ chạy trên một máy chủ riêng biệt. Có một khuôn khổ sẵn sàng cao đơn giản mà tôi có thể sử dụng để thực hiện dự phòng này không? Ví dụ, khung công tác HA này sẽ gửi các ping giữa các cá thể và tăng một số loại ngoại lệ hoặc thông báo trên trường hợp khác khi trường hợp đầu tiên đi xuống.Khuôn khổ Java HA

Trả lời

1

Xây dựng hệ thống như vậy là công việc thường ngày của tôi trong những năm gần đây. Tôi đã tìm thấy jgroups một công cụ rất hữu ích để nhận và xử lý các loại sự kiện nhóm đó. Đây là trường hợp nếu bạn muốn xây dựng cơ sở hạ tầng HA của riêng bạn. Tôi không biết, nhưng có lẽ trong trường hợp của bạn chỉ là một proxy ngược lại đơn giản như HAProxy có thể là đủ.

-2

hadoop là một nơi tốt để bắt đầu

+0

Nghiêm túc? Hadoop là một khung tính toán phân tán. Tại sao bạn sẽ sử dụng một khuôn khổ giảm bản đồ cho điều này? –

0

Nếu bạn muốn HA mà không gặp rắc rối, chỉ cần sử dụng một số cân bằng tải với khả năng HA ví dụ Ultramonkey, LVS với keepalived v.v.

Trong cấu hình HA, bạn thường muốn sử dụng IP ảo, vì vậy ngay cả khi bạn có chức năng ping/thông báo này làm khung, bạn vẫn sẽ có các công việc cần làm (bắt đầu trả lời các yêu cầu tới IP ảo khi một cá thể khác không thành công). Vì vậy, trừ khi bạn đang tìm kiếm một dịp học tập, tôi khuyên bạn nên sử dụng một phần mềm trung gian thay vì tự viết mã bằng cách sử dụng các khung công tác.

Có số lượng kiểm tra sức khỏe mà bạn có thể định cấu hình cho các phần giữa này. Một kiểm tra sức khỏe đơn giản có thể là ví dụ, kích hoạt một yêu cầu GET cho ứng dụng của bạn. định kỳ và tìm kiếm một chuỗi cụ thể (ví dụ: "XXX đang chạy") trong phản hồi để đảm bảo ứng dụng của bạn. đang chạy tốt.

0

Bạn không cung cấp nhiều chi tiết về công việc mà ứng dụng của bạn làm, vì vậy tùy thuộc vào trạng thái của nó, cho dù nó có thể chịu đựng được dataloss nhỏ hay không. có một loạt các giải pháp khác nhau.

Có một số gợi ý hay ở trên, tôi muốn thêm: hãy xem JMS và nhắn tin liên tục. Thông thường chúng làm cho phục hồi khá tầm thường, nhưng với chi phí của độ trễ hit (trừ khi bạn byu một sản phẩm thương mại và tìm hiểu nó tốt hoặc trả tiền cho nhà cung cấp để điều chỉnh ứng dụng của bạn). Với hàng đợi JMS, bạn có thể thực hiện xử lý hoạt động tích cực và tiết kiệm cho mình những nhức đầu của việc phát hiện lỗi.

Một hướng khác để xem xét là phân phối quản lý nhà nước/cụm khung như Gigaspaces, Coherence, Gemstone, Infinispan, Gridgain và Teracotta. Chúng có thể tái tạo dữ liệu của bạn và đảm bảo chất lượng dịch vụ khác nhau. Hầu hết trong số họ đi kèm với một số loại phát hiện lỗi và cơ chế quản lý phân tán.