Tôi có một ứng dụng JEE6 chạy trên cụm Glassfish 3.1.2. One @Singleton Bean chứa một số loại bộ nhớ cache (readolny). Người dùng có thể nhấn một nút trong GUI để cập nhật bộ nhớ cache với nội dung (cập nhật) từ cơ sở dữ liệu.Làm thế nào để thông báo cho tất cả (cùng) đậu Singleton trong một cụm Glassfish 3.1?
Điều này hoạt động tốt trong môi trường không có nhóm, nhưng bây giờ chúng tôi cần chuyển sang một cụm.
Vì vậy, tôi đang gặp phải sự cố, khi người dùng nhấn nút cập nhật đó, chỉ có Cache Singleton từ nút máy chủ của mình được cập nhật. Câu hỏi của tôi là, cách dễ nhất để làm cho các Singletons khác (trong các nút khác) cũng cập nhật dữ liệu đó là gì?
Tôi biết câu hỏi Singleton in Cluster environment, nhưng câu hỏi của tôi dành riêng cho Glassfish (vì tôi hy vọng có một số hỗ trợ xây dựng), một câu hỏi khác được gắn thẻ "Websphere". Và câu hỏi của tôi là về JEE6, câu hỏi còn lại cũ hơn JEE6.
Một điều bạn có thể muốn đăng hoặc suy nghĩ là 'bạn cần cập nhật nhanh như thế nào? aka cách ly giao dịch bắt buộc của bạn là gì? Bạn có cần sự thay đổi để được phản ánh trong các single trước khi họ xử lý bất kỳ yêu cầu nào khác không? Hoặc họ có thể xử lý một vài cuộc gọi và miễn là họ nhận được bản cập nhật trong vòng vài giây? –
@exabrial: một vài giây (1..5) là OK trong trường hợp của tôi. – Ralph
Câu trả lời hay nhất là pub/sub với JMS, được mô tả dưới đây bởi Sam. Có một MDB được tiêm với một tham chiếu đến Singleton. MDB nên đăng ký chủ đề. Làm cho nó cập nhật singleton khi nó nhận được một tin nhắn. –