/ / Baza danych aplikacji Java w klastrze - baza danych, wzorce projektowe, projektowanie baz danych, architektura, przetwarzanie klastrowe

Baza danych aplikacji Java w klastrze - baza danych, wzorce projektowe, projektowanie baz danych, architektura, klastry obliczeniowe

Chciałbym się pobawić kubernetes, Mogę uruchomić prostą aplikację, ale teraz chciałbym zaprojektować coś bardziej złożonego. Niemniej jednak nie mogę zrozumieć, jak obsługiwać dostęp do bazy danych w takiej architekturze.

Powiedzmy, że mam 100 replik pod jakąś prostą aplikacją do czatowania. Wszystkie muszą uzyskać dostęp do tej samej bazy danych (lub więcej jak zestaw danych) i wykonać CRUD operacje na nich. Jak to zaprojektować, aby zachować spójność danych i wyeliminować ryzyko impasu?

Jeśli to możliwe, chciałbym użyć SQLjak baza danych, dzięki czemu mogę wygodnie korzystać hibernate i inne znane mi narzędzia.

Czy to w ogóle możliwe, czy muszę stosować zupełnie inne podejście? Jakiej nazwy technologii lub architektury szukam?

Odpowiedzi:

1 dla odpowiedzi № 1

1) Możesz użyć puli połączeń, aby zmniejszyć tę liczbę i uczynić ustawienia połączenia bardziej agresywnymi / elastycznymi;

2) Podziel swoje mikrousług w taki sposób, abydostęp do trwałości jest mikrousługą, która wystawia twoją usługę CRUD na trwałość (mysql / rdms / nosql / etc). W ten sposób najprawdopodobniej nie potrzebujesz setek replik swoich kapsułek.

3) Zakleszczenia / strategie blokowania - jak Andrewwspomniane w komentarzach, jest bardziej związane z architekturą tworzenia oprogramowania niż z samym K8. Istnieje wiele sposobów radzenia sobie z tym za pomocą zalet / wad.