Spring Hibernate Multitenacy

Spring Hibernate Multitenacy
KO
  • Rejestracja:ponad 13 lat
  • Ostatnio:5 miesięcy
  • Postów:135
0

Witam,
próbuję ogarnąć multitenacy w Springu z Hibernate. Wiem, że istnieją ogólnie trzy podejścia:

  • tenat per baza
  • tenat per schema
  • discriminator w tabeli

Jestem w początkowej fazie projektu i na początku chciałem użyć wzorca "discriminator w tabeli". Do tego celu chciałem zastosować filtry z hibernate'a i pobierać dane z JWT (z Spring Security Context), a następnie uzupełniać parametr filtra danymi z JWT. Czy ktoś może ma pomysł jak to pogodzić? Z tego co patrzyłem to Hibernate ma jakieś Interceptory, ale czy tam będzie dostęp do Spring Security? Już mi się skończyły pomysły jak to rozwiązać? Pomocy!!!

Rozważałem jeszcze pozostałe dwa podejścia, jednak pytanie jak np. zarządzać zmianami w bazie? Tenaci będą tworzeni dynamicznie, więc też musiałaby być jakaś główna baza danych, gdzie byłby trzymane informacji do połączeń z bazami tenatów. Jak wygląda taki DevOps w przypadku podejść "tenat per db" i "tenat per schema"?

AK
na pewnym etapie wydawało mi się, że lepiej multitenacy ma zrobione Eclipselink, są gotowe propozycje, API itd ...
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 18 godzin
  • Postów:1875
0

Do kontekstu security masz dostęp praktycznie wszędzie tak długo jak jesteś na tym samym wątku (ale i to da się obejść, są stosowne rozszerzenia), ponieważ jest trzymany w thread local - to nie powinno być problemem. Ważniejsza jest decyzja faktycznie które rozwiązanie wybrać i tutaj niestety odpowiedz „to zależy”. Ja spotkałem się z podejściem (1) - każdy klient miał dedykowana bazę + baza „konfiguracyjna” - tutaj problemy wynikające z shardowania. Podejście (3) wydaje mi się nieskalowalne.


”Engineering is easy. People are hard.” Bill Coughran
edytowany 1x, ostatnio: Charles_Ray

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.