2012-04-03 35 views
8

Próbuję znaleźć sposób wdrożenia rozproszonego buforowania dla aplikacji.Czy można wdrożyć buforowanie rozproszone przy użyciu Ehcache bez pakietu Terracotta Enterprise Suite?

Ehcache jest już używany do buforowania w moim projekcie, dlatego szukam, jak rozwiązać ten problem za jego pomocą. Niestety, wydaje się, że do tego potrzebny jest pakiet Terracotta Enterprise Suite i jest on komercyjny. Czyż nie? Czy istnieje inne rozwiązanie, jak używać Ehcache do rozproszonego buforowania (RMI lub czegokolwiek innego)?

Odpowiedz

2

Nie potrzebujesz terakotowego zestawu do zarządzania budynkami, aby połączyć instancje Ehcache'a. Dzięki czemu można korzystać z klastrów ehcache & Terracotta dzisiaj z czystym OSS:

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

EDIT: Ten link wygasł. Poniżej znajduje się nowe połączenie związane z klastra cache http://www.ehcache.org/documentation/3.4/clustered-cache.html

Teraz jeśli trzeba replikację, można korzystać z innych mechanizmów, jak RMI rzeczywiście:

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

Choć tylko grupowanie Terracotta przyniesie Ci ha, funkcje takie jak gwarancje spójności i tym podobne ...

+1

Próbowałem użyć Ehcache z Terakotowym OSS, ale się nie udało :( Mam dwa węzły na oddzielnych serwerach (A, B) Każdy węzeł ma własny ehcache.xml (CM) Każdy CM zawiera i mieć jedną pamięć podręczną, o nazwie TestCache, z wewnątrz. Ok, aplikacja "A" umieścić element do pamięci podręcznej.Teraz, jeśli "A" będzie żądany ponownie - to powróci buforowany element pomyślnie.Ale "B" będzie tęsknić cache Jak widzę w dev-konsoli. - Terracotta zrozumieć, że to jest Menedżer wspólny cache i cache jest również wspólne dla obu aplikacji (Bo to pokazuje trafień i tęskni) muszę dzielić bufory manualy – Gadget

+0

to znaczy,.? czy muszę ustawić dodatkowe konfiguracje na tc-config.xml lub do ehcache.xml? We wszystkich przykładach, element "root" używany do "udostępniania" menedżerom pamięci podręcznej. Ale nie mam żadnych pól cacheManager w kodzie. Wszystko opisane tylko w pliku ehcache.xml. Istnieje również ustawienie "instrumented classes" w pliku tc-config.xml. Czy muszę ręcznie wpisywać wszystkie klasy obiektów w pamięci podręcznej? Wygląda to dziwnie, jeśli tak, ponieważ mam nadzieję, że plik ehcache.xml powinien wystarczyć. – Gadget

+0

dodanie elementu terracottaConfig w elemencie ehcache, wskazującym na serwer Terracotta, a dodanie elementu terakoty do każdej pamięci podręcznej, która ma być skupiona, powinno wystarczyć do rozpoczęcia pracy.Czy jesteś pewien, że odbierany jest właściwy plik XML? –

0

Możesz także spróbować Hazelcast. Jest to open-source, rozproszona pamięć podręczna i jest bardzo łatwa w użyciu.

PS: Pracuję dla Hazelcast

+0

Hazelcast Enterprise (nie za darmo, za pieniądze) jest wymagany do replikacji WAN. – AlexS

1

istnieją różne sposoby wdrożenia rozproszonej pamięci podręcznej za pomocą mechanizmu ehcache. Można używać RMI lub Jgroups.

W jednym z projektów przeszedłem przez tę samą sytuację i po pewnych badaniach odkryłem, że używanie serwera Redis do zarządzania pamięcią podręczną jest łatwym i skutecznym rozwiązaniem.

Proponuję to jako odpowiedź, ponieważ próba użycia ehcache zajmie trochę czasu i zwiększy złożoność, a w twoim obszarze roboczym może znajdować się wiele menedżerów pamięci podręcznej.

Powiązane problemy