Chiến lược tốt nhất để cấu trúc lại đối tượng Singleton thành môi trường cụm là gì?Singleton trong môi trường Cluster
Chúng tôi sử dụng Singleton để lưu trữ một số thông tin tùy chỉnh từ Cơ sở dữ liệu. chủ yếu là chỉ đọc nhưng được làm mới khi một số sự kiện cụ thể xảy ra.
Bây giờ, ứng dụng của chúng tôi cần được triển khai trong môi trường Clustered. Theo định nghĩa, mỗi JVM sẽ có một cá thể Singleton của riêng nó. Vì vậy, bộ đệm ẩn có thể không đồng bộ giữa JVM khi sự kiện làm mới xảy ra trên một nút và bộ nhớ cache của nó được làm mới.
Cách tốt nhất để giữ bộ nhớ cache được đồng bộ hóa là gì?
Cảm ơn.
Chỉnh sửa: Bộ nhớ cache được sử dụng chủ yếu để cung cấp danh sách tự động hoàn thành (lý do hiệu suất) cho giao diện người dùng và chúng tôi sử dụng Websphere. Vì vậy, bất kỳ lời khuyên liên quan đến Websphere chào đón.
Bạn có thể xây dựng trên 2 không? Bạn có nghĩa là JMS pub/đăng ký mô hình? – lud0h
Có giải pháp 2 về cơ bản là cách sử dụng cơ chế pub/sub để phát sóng các thay đổi đối với các cá thể bộ nhớ cache riêng lẻ. Bạn sẽ cần phải tạo một chủ đề JMS chạy trên máy chủ ứng dụng được đăng ký bởi từng bộ đệm. Khi dữ liệu đó thay đổi một thông báo sẽ cần phải được công bố cho chủ đề. Mỗi người đăng ký sẽ nhận được thông báo này và cập nhật bộ nhớ cache cục bộ cho phù hợp. – pjp
Nếu dữ liệu của bạn không thay đổi thường xuyên thì tôi sẽ đi cho tùy chọn 1. Tôi đã làm việc trên một số hệ thống bằng cách sử dụng phương pháp này để làm mới dữ liệu tham khảo. Tôi tin rằng chúng tôi đã từng làm mới bộ nhớ cache khoảng 30 phút một lần. Thời gian làm mới bạn chọn sẽ rõ ràng dựa trên cách dữ liệu tham chiếu của bạn đang được sử dụng. – pjp