2009-09-28 26 views
12

Szukam rozwiązania rozproszonego buforowania java. Chcielibyśmy możliwości lubi:Rozproszone buforowanie

  • Ukazuje
  • Automatyczne wykrywanie
  • Redundancja
  • niescentralizowanym

Zbadaliśmy ramy jak terakota, który wydaje się być wszystko, co będzie kiedykolwiek chcą z buforowania ramy ... Jednak wydaje się, że centralny węzeł (pamięci) buforowania, który jest wymagany, które stają się naszym pojedynczym punktem awarii.

Wszelkie pomysły inne niż wdrażanie własnego rozwiązania?

+0

Terakota nie ma SPOF - możesz użyć tyle hot backups, ile chcesz, aby przejąć, gdy aktywny serwer umiera. Dzięki Terracotta FX możesz mieć wiele aktywnych substancji na większą skalę. –

Odpowiedz

0

Terracotta oferuje również rozproszone pamięci podręcznej.

+0

Tylko komercyjna wersja, prawda? – cletus

+0

Nie sądzę, że jeśli używasz edycji Terracotta ES (patrz http://www.terracotta.org/web/display/enterprise/Products). –

4

Ostatnio Terracotta nabyła Ehcache i ma released a tight integration of the Ehcache API with the Terracotta clustered store w prostym pakiecie i wymaga tylko kilku dodatkowych linii konfiguracji Ehcache, aby przejść od pojedynczego węzła do klastrów, chociaż trzeba również uruchomić proces serwera Terracotta.

Ehcache z edycją Terracotta ES jest oprogramowaniem typu open source i bezpłatnym. Dostępne są licencje komercyjne, jeśli potrzebujesz wsparcia, większego skalowania, zabezpieczenia, wsparcia poprawek, itp.

Terakota korzysta z centralnego serwera macierz, a nie z jednego centralnego serwera, więc nie ma pojedynczego punktu awarii! Możesz ustawić dowolną liczbę serwerów kopii zapasowych, które chcesz, a te serwery zapasowe można skonfigurować tak, aby przejęły kontrolę nad aktywnym serwerem. Z Terracotta FX (produkt komercyjny) można również korzystać z wielu aktywnych serwerów.

+0

Problem z TerraCottą polega na tym, że aby uniknąć pojedynczego punktu awarii, potrzebujesz na maksymalnie 4 maszynach (lub JVM): - 2 dla Twojej aplikacji - 2 dla TerraCotta Wolę 4 JVM dla mojej aplikacji, ale z klastrowaniem w pamięci podręcznej JVM. –

14

Wypróbuj Hazelcast. Jest to klastrowanie typu open source i wysoce skalowalna platforma dystrybucji danych dla języka Java. Spełnia wszystkie Twoje wymagania. Dodatkowo jest bardzo łatwy w użyciu.

+0

W przypadku partycji sieciowej, czy Hazelcast faworyzuje spójność względem dostępności w CAP theroem (https://en.wikipedia.org/wiki/CAP_theorem)? –

1

Normalnie pojedynczy punkt awarii występuje, gdy cała operacja jest wykonywana na pojedynczym węźle i jeśli ten węzeł ulegnie awarii, cała operacja może spaść. rozwiązaniem tego problemu jest użycie topologii, takiej jak replika lub replika partycji. jeśli węzeł zostanie wyłączony, cała operacja zostanie przeniesiona do innego węzła bez utraty jakichkolwiek danych.

jeśli chodzi o funkcje, których szukasz, można znaleźć w jednym produkcie, NCache, jak wspomniał Umer.

4

Spróbuj Infinispan. Pamięć podręczna infinispan może być używana jako rozproszona pamięć podręczna, a także może być używana jako replikowana pamięć podręczna. Nie ma możliwości awarii pojedynczego punktu. W trybie rozproszonej pamięci podręcznej może zapewnić więcej miejsca niż Rozmiar sterty. Należy wziąć pod uwagę, że w każdym klastrze znajduje się 4 węzły o rozmiarze sterty 1 GB i trybie Infinispan jako replikowanym buforze podręcznym, a następnie klaster o całkowitej wielkości ma 1 Gb, ale jeśli Infinispan jest używany jako rozproszona pamięć podręczna i ustawiona jest 2 kopie na element danych, całkowity rozmiar będzie wynosił 2 Gb. http://www.jboss.org/infinispan

+0

hmm .. dobry wiedzieć o .. –

1

Jestem spóźniony na imprezę, ale próbowałeś TayzGrid, open source java distributed cache. Znany również jako siatka danych w pamięci lub magazyn wartości kluczy.

Odpowiada on wszystkie podstawowe potrzeby

- Distributed 
- Auto-Discovery 
- Redundancy 
- Non-Centralized 

Zarządza również zaawansowane scenariusze awaryjne jak split brain i nagłych restartów. Wszystkie węzły są inteligentne, a więc całkowicie rozproszone.

Możesz również wybrać topologię, której chcesz użyć (partycję lub replikację). Jeśli chcesz użyć bardziej zaawansowanych topologii (Partycja repliki), możesz maybe buy a license.