5

Do khuôn mặt JavaServer vốn đã có trạng thái ở trạng thái phía máy chủ, nên sử dụng các phương pháp nào để mở rộng theo chiều ngang ứng dụng JSF 2.0?Chia tỷ lệ ngang của ứng dụng JSF 2.0

Nếu một ứng dụng chạy nhiều máy chủ JSF, tôi có thể tưởng tượng các tình huống sau:

  1. phiên Chú ý: gửi tất cả các yêu cầu phù hợp với một phiên trao cho cùng một máy chủ.
    • Câu hỏi: công nghệ nào thường được sử dụng để đạt được điều này?
    • Vấn đề: máy chủ kết quả thất bại trong phiên mất ... và nói chung có vẻ như kiến ​​trúc mong manh, đặc biệt là khi bắt đầu tươi (không cố gắng để mở rộng quy mô một ứng dụng hiện tại)
  2. Nhà nước (Session) Replication: tái tạo JSF nêu trên tất cả các máy chủ JSF trong cụm
    • Câu hỏi: Công nghệ nào thường được sử dụng để đạt được điều này?
    • Sự cố: không quy mô. tổng bộ nhớ của cụm = tổng bộ nhớ trên máy chủ nhỏ nhất
  3. Hướng dẫn JSF (thông qua cấu hình) để lưu trữ trạng thái trên tài nguyên bên ngoài (ví dụ: máy chủ khác chạy bộ nhớ trong bộ nhớ rất nhanh), sau đó truy cập tài nguyên đó từ Các máy chủ JSF khi trạng thái ứng dụng là cần thiết?
    • Câu hỏi: là điều này có thể?
  4. Hướng dẫn JSF (thông qua cấu hình) là trạng thái không quốc tịch?
    • Câu hỏi: là điều này có thể?

[EDIT]

cập nhật để đáp ứng với gợi ý của Chú ý phiên

Trả lời

2

này Ravi có thể đạt được bằng cách cấu hình cân bằng tải của bạn trong chế độ phiên dính.

Thêm info

Bằng cách này, tất cả các yêu cầu tiếp theo của bạn sẽ được gửi đến cùng một máy chủ ứng dụng.

+1

Cảm ơn @Ravi, tôi đã cập nhật câu hỏi của mình cho phù hợp. Nhưng, theo ý kiến ​​của tôi, đây là giải pháp băng thông nhiều hơn là giải pháp kiến ​​trúc. –

+0

Yup, nếu nút bị lỗi thì tất cả các phiên trên nút đó sẽ bị mất. – Ravi

0

Điều gì về sao chép phiên với ngữ nghĩa "bạn thân"?

Với một bộ nhớ tổng số bạn bè bị giảm đi một nửa (mỗi máy chủ cần giữ dữ liệu phiên của hai máy chủ), tốt hơn rất nhiều so với việc giữ dữ liệu của mỗi và mọi máy chủ ở đó.

Sao chép nhân thân cũng giảm chi phí băng thông.

2

Dưới đây là một ý tưởng từ Jelastic PaaS:

Pair-up trường hợp ứng dụng trong cụm 2-server, và áp dụng sao chép phiên giữa những 2 trường hợp trong vòng một cluster. Sau đó, bạn có thể thêm bao nhiêu cụm ví dụ như bạn muốn và tải các yêu cầu cân bằng giữa các cụm, với mỗi phiên gắn bó với cụm mà nó bắt nguồn từ. Trong cluster, các yêu cầu có thể được cân bằng tải giữa các cá thể.

Bằng cách này, có một số mức độ an toàn không thành công, vì nếu một thể hiện trong cụm không thành công, phần còn lại sẽ tiếp quản, với cùng trạng thái phiên. Mặt khác, tác động bộ nhớ không phải là nghiêm trọng như với đầy đủ nhân rộng.

Tóm lại, nó là sự kết hợp của câu hỏi 1 và 2. của bạn. Tất nhiên, có thể có nhiều hơn 2 trường hợp trong mỗi cụm, nếu sự sẵn có là mối quan tâm lớn hơn.

Liên kết tới tài liệu Jelastic Tôi đã nâng ý tưởng từ: http://jelastic.com/docs/session-replication.

Tuyên bố từ chối trách nhiệm: Tôi không thực sự biết cách định cấu hình điều này với JSF2 và không có liên kết với Jelastic. Chỉ cần thích ý tưởng và nghĩ rằng nó có thể giúp đỡ.