2012-04-03 38 views
8

Tôi cố gắng tìm cách triển khai bộ nhớ đệm được phân phối cho các ứng dụng.Có thể triển khai bộ nhớ đệm được phân phối bằng cách sử dụng Ehcache mà không cần phần mềm Terracotta Enterprise Suite không?

Ehcache đã được sử dụng để lưu vào bộ nhớ cache trong dự án của tôi, đó là lý do tại sao tôi tìm cách giải quyết vấn đề này bằng cách sử dụng nó. Nhưng, thật không may, có vẻ như, bộ công cụ Terracotta Enterprise Suite là cần thiết cho điều này và nó là thương mại. Phải không? Có cách nào khác để sử dụng Ehcache cho bộ nhớ đệm được phân phối (RMI hay bất kỳ thứ gì khác) không?

Trả lời

2

Bạn không cần bộ phần mềm doanh nghiệp đất nung để nhóm các phiên bản Ehcache của bạn. Vì vậy, bạn có thể sử dụng clustering với ehcache & Terracotta ngày hôm nay, với OSS tinh khiết:

http://www.ehcache.org/documentation/configuration/distributed-cache-configuration

Edit: Liên kết này đã hết hạn. Dưới đây là liên kết mới liên quan đến cụm bộ nhớ cache http://www.ehcache.org/documentation/3.4/clustered-cache.html

Bây giờ nếu bạn cần sao chép, bạn có thể sử dụng các cơ chế khác như RMI thực:

http://www.ehcache.org/documentation/replication/index

Mặc dù, chỉ có phân nhóm Terracotta sẽ mang lại cho bạn HA và các tính năng như đảm bảo tính nhất quán và các tính năng tương tự ...

+1

Tôi đã cố gắng sử dụng Ehcache với PMN đất nung, nhưng không thành công: ( Tôi có hai nút trên các máy chủ được phân tách (A, B). Mỗi nút có ehcache.xml riêng (CM). Mỗi CM chứa và có một bộ nhớ cache, tên TestCache, với bên Ok, 'A' mục đặt ứng dụng để cache Bây giờ, nếu 'A' sẽ được yêu cầu một lần nữa -... nó sẽ trở lại mục lưu trữ thành công Nhưng 'B' sẽ bỏ lỡ Như tôi thấy trong dev-console - Terracotta hiểu rằng Cache Cache và bộ nhớ cache thông thường cũng là phổ biến cho cả hai ứng dụng (Nguyên nhân nó cho thấy số lần truy cập và bỏ lỡ) Tôi có cần chia sẻ bộ nhớ cache thủ công không? – Gadget

+0

Ý tôi là, tôi có cần thiết lập một số cấu hình bổ sung cho tc-config.xml không hoặc ehcache.xml? Trong tất cả các ví dụ, phần tử 'root' được sử dụng để "chia sẻ" các trình quản lý bộ nhớ cache. Nhưng tôi không có bất kỳ trường cacheManager nào trong mã. Tất cả chỉ được mô tả bên trong ehcache.xml. Ngoài ra, còn có cài đặt 'các lớp có thiết bị' trong tc-config.xml. Tôi có cần liệt kê tất cả các Lớp của các đối tượng được lưu trữ theo cách thủ công không? Có vẻ lạ nếu như vậy, vì tôi hy vọng rằng ehcache.xml là đủ. – Gadget

+0

thêm phần tử terracottaConfig vào phần tử ehcache, trỏ đến máy chủ Terracotta và thêm phần tử đất nung vào từng bộ nhớ cache bạn muốn nhóm sẽ đủ để bạn bắt đầu.Bạn có chắc là tệp xml đúng đang được chọn không? –

0

Bạn cũng có thể muốn thử Hazelcast. Nó là mã nguồn mở, bộ nhớ đệm phân tán và rất dễ sử dụng.

PS: Tôi làm việc cho Hazelcast

+0

Doanh nghiệp Hazelcast (không miễn phí, tiền) là cần thiết để nhân rộng WAN. – AlexS

1

có nhiều cách khác nhau để triển khai bộ nhớ cache được phân phối bằng cơ chế ehcache. Người ta có thể sử dụng RMI hoặc Jgroups.

Trong một trong những dự án tôi đã đi qua tình hình tương tự và sau khi một số nghiên cứu tôi đã tìm ra Sử dụng máy chủ Redis để quản lý bộ nhớ cache là một giải pháp dễ dàng và hiệu quả.

Tôi cho rằng đây là câu trả lời bởi vì nếu bạn thử sử dụng ehcache, nó sẽ mất thời gian và tăng độ phức tạp và bạn có thể có nhiều trình quản lý bộ đệm trong vùng làm việc của mình.

Các vấn đề liên quan