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ć SQL
jak 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 № 11) 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.