Udostępnij za pośrednictwem


Strategia buforowania połączeń dla usługi Azure Database for PostgreSQL — serwer elastyczny przy użyciu narzędzia PgBouncer

DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny

Strategiczne wskazówki dotyczące wybierania mechanizmu buforowania połączeń dla serwera elastycznego usługi Azure Database for PostgreSQL.

Wprowadzenie

W przypadku korzystania z serwera elastycznego usługi Azure Database for PostgreSQL nawiązanie połączenia z bazą danych obejmuje utworzenie kanału komunikacyjnego między aplikacją kliencką a serwerem. Ten kanał jest odpowiedzialny za zarządzanie danymi, wykonywanie zapytań i inicjowanie transakcji. Po nawiązaniu połączenia aplikacja kliencka może wysyłać polecenia do serwera i odbierać odpowiedzi. Jednak utworzenie nowego połączenia dla każdej operacji może spowodować problemy z wydajnością aplikacji o znaczeniu krytycznym. Za każdym razem, gdy tworzone jest nowe połączenie, serwer elastyczny usługi Azure Database for PostgreSQL tworzy nowy proces przy użyciu procesu postmaster, który zużywa więcej zasobów.

Aby rozwiązać ten problem, buforowanie połączeń jest używane do tworzenia pamięci podręcznej połączeń, które mogą być ponownie używane na serwerze elastycznym usługi Azure Database for PostgreSQL. Gdy aplikacja lub klient żąda połączenia, jest tworzona z puli połączeń. Po zakończeniu sesji lub transakcji połączenie jest zwracane do puli w celu ponownego użycia. Dzięki ponownemu używaniu połączeń użycie zasobów jest zmniejszane, a wydajność jest większa.

Diagram wzorców puli połączeń.

Chociaż istnieją różne narzędzia do buforowania połączeń, w tej sekcji omówiono różne strategie używania buforowania połączeń przy użyciu narzędzia PgBouncer.

Co to jest PgBouncer?

PgBouncer to wydajny moduł puli połączeń zaprojektowany dla bazy danych PostgreSQL, który oferuje zaletę skrócenia czasu przetwarzania i optymalizacji użycia zasobów w zarządzaniu wieloma połączeniami klientów z co najmniej jedną bazą danych. Narzędzie PgBouncer obejmuje trzy odrębne tryby buforowania na potrzeby rotacji połączeń:

  • Buforowanie sesji: ta metoda przypisuje połączenie serwera do aplikacji klienckiej przez cały czas trwania połączenia klienta. Po rozłączeniu aplikacji klienckiej narzędzie PgBouncer natychmiast zwraca połączenie serwera z powrotem do puli. Mechanizm buforowania sesji jest trybem domyślnym w narzędziu PgBouncer typu open source. Zobacz Konfiguracja narzędzia PgBouncer
  • Buforowanie transakcji: w przypadku buforowania transakcji połączenie serwera jest dedykowane aplikacji klienckiej podczas transakcji. Po pomyślnym zakończeniu transakcji narzędzie PgBouncer inteligentnie zwalnia połączenie z serwerem, udostępniając je ponownie w puli. Buforowanie transakcji jest trybem domyślnym w wbudowanym narzędziu PgBouncer serwera elastycznego usługi Azure Database for PostgreSQL i nie obsługuje przygotowanych transakcji.
  • Buforowanie instrukcji: w przypadku buforowania instrukcji połączenie serwera jest przydzielane do aplikacji klienckiej dla każdej instrukcji. Po zakończeniu instrukcji połączenie serwera jest natychmiast zwracane do puli połączeń. Należy pamiętać, że transakcje z wieloma instrukcjami nie są obsługiwane w tym trybie.

Efektywne wykorzystanie narzędzia PgBouncer można podzielić na trzy odrębne wzorce użycia.

  • Wdrożenie narzędzia PgBouncer i kolokacji aplikacji
  • Wdrożenia narzędzia PgBouncer niezależne od aplikacji
  • Wbudowane wdrożenie narzędzia PgBouncer i bazy danych

Każdy z tych wzorców ma własne zalety i wady.

1. Wdrożenie kolokacji aplikacji i narzędzia PgBouncer

W przypadku korzystania z tego podejścia narzędzie PgBouncer jest wdrażane na tym samym serwerze, na którym jest hostowana aplikacja. Aplikację i narzędzie PgBouncer można wdrożyć na tradycyjnych maszynach wirtualnych lub w architekturze opartej na mikrousługach, jak wyróżniono:

I. Narzędzie PgBouncer wdrożone na maszynie wirtualnej aplikacji

Jeśli aplikacja działa na maszynie wirtualnej platformy Azure, możesz skonfigurować narzędzie PgBouncer na tej samej maszynie wirtualnej. Aby zainstalować i skonfigurować narzędzie PgBouncer jako serwer proxy puli połączeń za pomocą serwera elastycznego usługi Azure Database for PostgreSQL, postępuj zgodnie z instrukcjami podanymi w poniższym linku.

Diagram współlokarzenia aplikacji na maszynie wirtualnej.

Wdrażanie narzędzia PgBouncer na serwerze aplikacji może zapewnić kilka zalet, zwłaszcza podczas pracy z elastycznymi bazami danych serwera usługi Azure Database for PostgreSQL. Oto niektóre z kluczowych korzyści i ograniczeń tej metody wdrażania:

Korzyści:

  • Mniejsze opóźnienie: dzięki wdrożeniu narzędzia PgBouncer na tej samej maszynie wirtualnej aplikacji komunikacja między podstawową aplikacją a modułem puli połączeń jest wydajna ze względu na ich bliskość. Wdrażanie narzędzia PgBouncer na maszynie wirtualnej aplikacji minimalizuje opóźnienia i zapewnia bezproblemowe i szybkie interakcje.
  • Ulepszone zabezpieczenia: Narzędzie PgBouncer może pełnić rolę bezpiecznego pośrednika między aplikacją a bazą danych, zapewniając dodatkową warstwę zabezpieczeń. Może wymuszać uwierzytelnianie i szyfrowanie, zapewniając, że tylko autoryzowani klienci mogą uzyskiwać dostęp do bazy danych.

Ogólnie rzecz biorąc, wdrażanie narzędzia PgBouncer na serwerze aplikacji zapewnia wydajniejsze, bezpieczne i skalowalne podejście do zarządzania połączeniami z elastycznymi bazami danych serwera usługi Azure Database for PostgreSQL, zwiększając wydajność i niezawodność aplikacji.

Ograniczenia:

  • Pojedynczy punkt awarii: jeśli narzędzie PgBouncer zostanie wdrożone jako pojedyncze wystąpienie na serwerze aplikacji, stanie się potencjalnym pojedynczym punktem awarii. Jeśli wystąpienie narzędzia PgBouncer ulegnie awarii, może zakłócić całą pulę połączeń bazy danych, powodując przestój aplikacji. Aby wyeliminować problem z pojedynczym punktem awarii, możesz skonfigurować wiele wystąpień narzędzia PgBouncer za modułem równoważenia obciążenia w celu zapewnienia wysokiej dostępności.
  • Ograniczona skalowalność: skalowalność narzędzia PgBouncer zależy od pojemności serwera, na którym jest wdrożony. Jeśli serwer aplikacji osiągnie limit połączenia, narzędzie PgBouncer może stać się wąskim gardłem, ograniczając możliwość skalowania aplikacji. Może być konieczne rozłożenie obciążenia połączenia między wieloma wystąpieniami narzędzia PgBouncer lub rozważ alternatywne rozwiązania, takie jak buforowanie połączeń na poziomie aplikacji.
  • Złożoność konfiguracji: Konfigurowanie i dostrajanie narzędzia PgBouncer może być złożone, szczególnie w przypadku uwzględniania czynników, takich jak limity połączeń, ustalanie rozmiaru puli i równoważenie obciążenia. Administratorzy muszą dokładnie dostosować konfigurację narzędzia PgBouncer do wymagań aplikacji i zapewnić optymalną wydajność i stabilność.

Ważne jest, aby rozważyć te ograniczenia dotyczące korzyści i ocenić, czy pgBouncer jest właściwym wyborem dla określonej aplikacji i konfiguracji bazy danych.

II. Narzędzie PgBouncer wdrożone jako przyczepka usługi AKS

Można użyć narzędzia PgBouncer jako kontenera przyczepki, jeśli aplikacja jest konteneryzowana i działa w usłudze Azure Kubernetes Service (AKS), Azure Container Instance (ACI), Azure Container Apps (ACA) lub Azure Red Hat OpenShift (ARO). Wzór przyczepki czerpie inspirację z koncepcji przyczepki dołączonej do motocykla, gdzie kontener pomocniczy, znany jako kontener przyczepki, jest dołączony do aplikacji nadrzędnej. Ten wzorzec wzbogaca aplikację nadrzędną, rozszerzając jej funkcje i zapewniając dodatkową pomoc techniczną.

Wzorzec przyczepki jest zwykle używany z kontenerami, które są coschedulowane jako niepodzielna grupa kontenerów. Wdrażanie narzędzia PgBouncer w przyczepce usługi AKS ściśle łączy cykle życia aplikacji i przyczepki oraz udostępnia zasoby, takie jak nazwa hosta i sieć, aby efektywnie korzystać z zasobów. Przyczepka pgBouncer działa obok kontenera aplikacji w tym samym zasobniku w usłudze Azure Kubernetes Service (AKS) z mapowaniem 1:1, służąc jako serwer proxy puli połączeń dla serwera elastycznego usługi Azure Database for PostgreSQL.

Ten wzorzec przyczepki jest zwykle używany z kontenerami, które są coschedulowane jako niepodzielna grupa kontenerów. Wzorzec przyczepki silnie wiąże cykle życia aplikacji i przyczepki oraz udostępnia zasoby takie jak nazwa hosta i sieć. Korzystając z tej konfiguracji, narzędzie PgBouncer optymalizuje zarządzanie połączeniami i ułatwia wydajną komunikację między aplikacją a elastycznym wystąpieniem serwera usługi Azure Database for PostgreSQL.

Firma Microsoft opublikowała obraz serwera proxy przyczepki pgBouncer w rejestrze kontenerów firmy Microsoft.

Aby uzyskać więcej informacji, zapoznaj się z tym tematem.

Diagram współlokarzenia aplikacji w przyczepce.

Oto niektóre z kluczowych korzyści i ograniczeń tej metody wdrażania:

Korzyści:

  • Mniejsze opóźnienie: dzięki wdrożeniu narzędzia PgBouncer jako przyczepki usługi AKS komunikacja między podstawową aplikacją a modułem puli połączeń jest bezproblemowa i wydajna ze względu na ich bliskość. Wdrażanie narzędzia PgBouncer przyczepki usługi AKS minimalizuje opóźnienia i zapewnia bezproblemowe i szybkie interakcje.
  • Uproszczone zarządzanie i wdrażanie: ścisłe sprzężenie narzędzia PgBouncer z kontenerem aplikacji upraszcza proces zarządzania i wdrażania. Oba składniki są ściśle zintegrowane, co ułatwia administrowanie i bezproblemową koordynację.
  • Wysoka dostępność i odporność połączenia: w przypadku awarii kontenera aplikacji lub ponownego uruchomienia kontenera przyczepki PgBouncer uważnie następuje, zapewniając wysoką dostępność. Ta konfiguracja gwarantuje odporność połączenia i utrzymuje przewidywalną wydajność nawet podczas pracy w trybie failover, przyczyniając się do niezawodnego i niezawodnego systemu.

Biorąc pod uwagę usługę PgBouncer jako przyczepkę usługi AKS, możesz użyć tych zalet, aby zwiększyć wydajność aplikacji, usprawnić zarządzanie i zapewnić ciągłą dostępność modułu puli połączeń.

Ograniczenia:

  • Problemy z wydajnością połączeń: aplikacje na dużą skalę, które korzystają z tysięcy zasobników, z których każda działa przyczepka PgBouncer, może napotkać potencjalne wyzwania związane z wyczerpaniem połączeń z bazą danych. Taka sytuacja może spowodować obniżenie wydajności i przerwy w działaniu usługi. Wdrożenie przyczepki PgBouncer dla każdego zasobnika zwiększa liczbę współbieżnych połączeń z serwerem bazy danych, co może przekroczyć jego pojemność. W związku z tym baza danych może mieć trudności z obsługą dużej liczby połączeń przychodzących, może prowadzić do problemów z wydajnością, takich jak zwiększone czasy odpowiedzi, a nawet awarie usługi.
  • Wdrożenie złożone: wykorzystanie wzorca przyczepki wprowadza poziom złożoności procesu wdrażania, ponieważ obejmuje uruchamianie dwóch kontenerów w obrębie tego samego zasobnika. Może to potencjalnie komplikować rozwiązywanie problemów i debugowanie działań, co wymaga dodatkowego wysiłku w celu zidentyfikowania i rozwiązania problemów.
  • Wyzwania związane ze skalowaniem: należy pamiętać, że wzorzec przyczepki może nie być idealnym wyborem dla aplikacji wymagających wysokiej skalowalności. Włączenie kontenera przyczepki może narzucić więcej wymagań dotyczących zasobów, co może potencjalnie ograniczyć liczbę zasobników, które można skutecznie tworzyć i zarządzać.

Biorąc pod uwagę ten wzorzec przyczepki, ważne jest, aby dokładnie ocenić kompromisy między złożonością wdrożenia i wymaganiami dotyczącymi skalowalności, aby określić najbardziej odpowiednie podejście dla konkretnego scenariusza aplikacji.

2. Niezależne od aplikacji — scentralizowane wdrożenie narzędzia PgBouncer

W przypadku korzystania z tego podejścia narzędzie PgBouncer jest wdrażane jako scentralizowana usługa niezależnie od aplikacji. Usługę PgBouncer można wdrożyć na tradycyjnych maszynach wirtualnych lub w architekturze opartej na mikrousługach, jak wyróżniono:

I. Narzędzie PgBouncer wdrożone na maszynie wirtualnej z systemem ubuntu za usługą Azure Load Balancer

Serwer proxy połączeń pgBouncer jest konfigurowany między warstwą aplikacji i bazy danych za usługą Azure Load Balancer, jak pokazano na obrazie. W tym wzorcu wiele wystąpień narzędzia PgBouncer jest wdrażanych za modułem równoważenia obciążenia jako usługą w celu wyeliminowania pojedynczego punktu awarii. Ten wzorzec jest również odpowiedni w scenariuszach, w których aplikacja jest uruchomiona w usłudze zarządzanej, takiej jak aplikacja systemu Azure Services lub Azure Functions, i nawiązywanie połączenia z usługą PgBouncer w celu łatwej integracji z istniejącą infrastrukturą.

Zapoznaj się z linkiem , aby zainstalować i skonfigurować serwer proxy puli połączeń pgBouncer za pomocą serwera elastycznego usługi Azure Database for PostgreSQL.

Diagram współlokowania aplikacji na maszynie wirtualnej z usługą Load Balancer.

Oto niektóre z kluczowych korzyści i ograniczeń tej metody wdrażania:

Korzyści:

  • Usuwanie pojedynczego punktu awarii: łączność aplikacji może nie mieć wpływu na awarię pojedynczej maszyny wirtualnej pgBouncer, ponieważ istnieje kilka wystąpień narzędzia PgBouncer za usługą Azure Load Balancer.
  • Bezproblemowa integracja z usługami zarządzanymi: jeśli aplikacja jest hostowana na zarządzanej platformie usług, takiej jak usługi aplikacja systemu Azure lub Azure Functions, wdrożenie narzędzia PgBouncer na maszynie wirtualnej umożliwia łatwą integrację z istniejącą infrastrukturą.
  • Uproszczona konfiguracja na maszynie wirtualnej platformy Azure: jeśli aplikacja jest już uruchomiona na maszynie wirtualnej platformy Azure, konfigurowanie narzędzia PgBouncer na tej samej maszynie wirtualnej jest proste. Wdrożenie narzędzia PgBouncer na maszynie wirtualnej zapewnia, że narzędzie PgBouncer jest wdrażane w bliskiej odległości od aplikacji, minimalizując opóźnienie sieci i maksymalizując wydajność.
  • Nietrwajna konfiguracja: wdrażając narzędzie PgBouncer na maszynie wirtualnej, można uniknąć modyfikowania parametrów serwera na serwerze elastycznym usługi Azure Database for PostgreSQL. Jest to przydatne, gdy chcesz skonfigurować narzędzie PgBouncer w wystąpieniu serwera elastycznego usługi Azure Database for PostgreSQL. Na przykład zmiana parametru SSLMODE na "wymagane" na serwerze elastycznym usługi Azure Database for PostgreSQL może spowodować niepowodzenie niektórych aplikacji, które korzystają z protokołu SSLMODE=FALSE. Wdrażanie narzędzia PgBouncer na oddzielnej maszynie wirtualnej umożliwia zachowanie domyślnej konfiguracji serwera podczas korzystania z korzyści narzędzia PgBouncer.

Biorąc pod uwagę te korzyści, wdrożenie narzędzia PgBouncer na maszynie wirtualnej oferuje wygodne i wydajne rozwiązanie zwiększające wydajność i zgodność aplikacji działającej w infrastrukturze platformy Azure.

Ograniczenia:

  • Obciążenie związane z zarządzaniem: ponieważ narzędzie PgBouncer jest zainstalowane na maszynie wirtualnej, może istnieć obciążenie związane z zarządzaniem wieloma plikami konfiguracji. Utrudnia to radzenie sobie z uaktualnieniami wersji, nowymi wersjami i aktualizacjami produktów.
  • Parzystość funkcji: w przypadku migracji z tradycyjnego serwera PostgreSQL do serwera elastycznego usługi Azure Database for PostgreSQL i korzystania z narzędzia PgBouncer mogą wystąpić pewne luki w funkcjach. Na przykład brak obsługi md5 na serwerze elastycznym usługi Azure Database for PostgreSQL.

II. Scentralizowany element PgBouncer wdrożony jako usługa w usłudze AKS

Jeśli pracujesz z wysoce skalowalnymi i dużymi wdrożeniami konteneryzowanymi w usłudze Azure Kubernetes Service (AKS), składającymi się z setek zasobników lub w sytuacjach, w których wiele aplikacji musi łączyć się z udostępnioną bazą danych, narzędzie PgBouncer może być stosowane jako autonomiczna usługa, a nie kontener przyczepki.

Korzystając z narzędzia PgBouncer jako oddzielnej usługi, można wydajnie zarządzać buforowaniem połączeń i obsługiwać je dla aplikacji na szerszą skalę. Takie podejście umożliwia scentralizowanie funkcji buforowania połączeń, umożliwiając wielu aplikacjom łączenie się z tym samym zasobem bazy danych przy zachowaniu optymalnej wydajności i wykorzystania zasobów.

Obraz serwera proxy przyczepki pgBouncer opublikowany w rejestrze kontenerów firmy Microsoft może służyć do tworzenia i wdrażania usługi.

Diagram narzędzia PgBouncer jako usługi w usłudze AKS.

Oto niektóre z kluczowych korzyści i ograniczeń tej metody wdrażania:

Korzyści:

  • Zwiększona niezawodność: wdrażanie narzędzia PgBouncer jako usługi autonomicznej umożliwia konfigurację w sposób wysoce dostępny. Zwiększa to ogólną niezawodność infrastruktury puli połączeń, zapewniając ciągłą dostępność nawet w obliczu awarii lub zakłóceń.
  • Optymalne wykorzystanie zasobów: jeśli aplikacja lub serwer bazy danych mają ograniczone zasoby, wybranie oddzielnej maszyny dedykowanej do uruchamiania usługi PgBouncer może być korzystne. Wdrażając narzędzie PgBouncer na maszynie z dużą ilością zasobów, można zapewnić optymalną wydajność i zapobiec problemom z rywalizacją o zasoby.
  • Scentralizowane zarządzanie połączeniami: gdy wymagane jest scentralizowane zarządzanie połączeniami bazy danych, autonomiczna usługa PgBouncer zapewnia bardziej usprawnione podejście. Konsolidując zadania zarządzania połączeniami w scentralizowaną usługę, można skutecznie monitorować i kontrolować połączenia bazy danych w wielu aplikacjach, upraszczając administrację i zapewniając spójność.

Biorąc pod uwagę usługę PgBouncer jako autonomiczną usługę w usłudze AKS, możesz użyć tych korzyści, aby uzyskać lepszą niezawodność, wydajność zasobów i scentralizowane zarządzanie połączeniami bazy danych.

Ograniczenia:

  • Zwiększone opóźnienie N/W: Podczas wdrażania narzędzia PgBouncer jako usługi autonomicznej należy wziąć pod uwagę potencjalne wprowadzenie większego opóźnienia. Jest to spowodowane koniecznością przekazania połączeń między aplikacją a usługą PgBouncer za pośrednictwem sieci. Ważne jest, aby ocenić wymagania dotyczące opóźnień aplikacji i rozważyć kompromis między scentralizowanym zarządzaniem połączeniami a potencjalnymi problemami z opóźnieniami.

Chociaż narzędzie PgBouncer działające jako autonomiczna usługa oferuje korzyści, takie jak scentralizowane zarządzanie i optymalizacja zasobów, ważne jest, aby ocenić wpływ potencjalnego opóźnienia na wydajność aplikacji, aby upewnić się, że jest ona zgodna z określonymi wymaganiami.

3. Wbudowany serwer PgBouncer w usłudze Azure Database for PostgreSQL — serwer elastyczny

Serwer elastyczny usługi Azure Database for PostgreSQL oferuje rozwiązanie PgBouncer jako wbudowane rozwiązanie do buforowania połączeń. Jest to oferowana jako opcjonalna usługa, którą można włączyć dla poszczególnych serwerów baz danych. Narzędzie PgBouncer działa na tej samej maszynie wirtualnej co wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL. W miarę wzrostu liczby połączeń ponad kilkaset lub tysięcy serwer elastyczny usługi Azure Database for PostgreSQL może napotkać ograniczenia zasobów. W takich przypadkach wbudowane narzędzie PgBouncer może zapewnić znaczącą przewagę dzięki poprawie zarządzania bezczynnością i krótkotrwałych połączeń na serwerze bazy danych.

Zapoznaj się z linkiem, aby włączyć i skonfigurować buforowanie połączeń pgBouncer na serwerze elastycznym usługi Azure Database for PostgreSQL.

Oto niektóre z kluczowych korzyści i ograniczeń tej metody wdrażania:

Korzyści:

  • Bezproblemowa konfiguracja: dzięki wbudowanej funkcji PgBouncer na serwerze elastycznym usługi Azure Database for PostgreSQL nie ma potrzeby oddzielnej instalacji ani złożonej konfiguracji. Można go łatwo skonfigurować bezpośrednio z parametrów serwera, zapewniając bezproblemowe środowisko pracy.
  • Wygoda usługi zarządzanej: jako usługa zarządzana użytkownicy mogą korzystać z zalet innych usług zarządzanych platformy Azure. Obejmuje to aktualizacje automatyczne, eliminując konieczność ręcznej konserwacji i zapewniając, że narzędzie PgBouncer jest na bieżąco z najnowszymi funkcjami i poprawkami zabezpieczeń.
  • Obsługa połączeń publicznych i prywatnych: wbudowany serwer PgBouncer w usłudze Azure Database for PostgreSQL zapewnia obsługę połączeń publicznych i prywatnych. Dzięki temu użytkownicy mogą nawiązywać bezpieczne połączenia za pośrednictwem sieci prywatnych lub łączyć się zewnętrznie w zależności od określonych wymagań.
  • Wysoka dostępność (HA): w przypadku przejścia w tryb failover, w którym serwer rezerwowy jest promowany do roli podstawowej, narzędzie PgBouncer bezproblemowo uruchamia się ponownie w nowo promowanej rezerwie bez żadnych zmian wymaganych do parametry połączenia aplikacji. Zapewnia to ciągłą dostępność i minimalizuje zakłócenia aplikacji.
  • Opłacalne: jest opłacalne, ponieważ użytkownicy nie muszą płacić za dodatkowe obliczenia, takie jak maszyna wirtualna lub kontenery, chociaż ma jakiś wpływ na procesor CPU, ponieważ jest to inny proces uruchomiony na tej samej maszynie.

Dzięki wbudowanej usłudze PgBouncer na serwerze elastycznym usługi Azure Database for PostgreSQL użytkownicy mogą cieszyć się wygodą uproszczonej konfiguracji, niezawodnością usługi zarządzanej, obsługą różnych trybów buforowania i bezproblemową wysoką dostępnością podczas scenariuszy trybu failover.

Ograniczenia:

  • Nieobsługiwane w przypadku funkcji Burstable: narzędzie PgBouncer nie jest obecnie obsługiwane w przypadku warstwy obliczeniowej serwera z możliwością rozszerzenia. Jeśli zmienisz warstwę obliczeniową z warstwy Ogólnego przeznaczenia lub Zoptymalizowane pod kątem pamięci na warstwę z możliwością serii, utracisz funkcję PgBouncer .
  • Ponowne nawiązywanie połączeń po ponownym uruchomieniu: za każdym razem, gdy serwer jest ponownie uruchamiany podczas operacji skalowania, trybu failover wysokiej dostępności lub ponownego uruchamiania, narzędzie PgBouncer jest również ponownie uruchamiane wraz z maszyną wirtualną serwera. W związku z tym należy ponownie ustanowić istniejące połączenia.

Omówiliśmy różne sposoby implementowania narzędzia PgBouncer, a tabela podsumowuje metodę wdrażania, którą należy wybrać:

Kryteria wyboru Narzędzie PgBouncer na maszynie wirtualnej aplikacji Narzędzie PgBouncer na maszynie wirtualnej przy użyciu usługi ALB* Narzędzie PgBouncer w przyczepce usługi AKS PgBouncer jako usługa Wbudowany serwer elastyczny usługi Azure Database for PostgreSQL PgBouncer
Uproszczone zarządzanie
HA
Aplikacje konteneryzowane
Mniejsze obciążenie sieci i opóźnienie
Szczegółowa kontrola monitorowania i debugowania

Legenda

Poziom trudności Symbol
Łatwe
Śred.
Trudne

*ALB: Azure Load Balancer.