Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Od 31 marca 2025 r. usługi w chmurze (wsparcie dodatkowe) są przestarzałe i zostaną w pełni wycofane 31 marca 2027 r. Dowiedz się więcej o tej deprecjacji i migracji.
Sonda modułu równoważenia obciążenia to sonda zdrowia zdefiniowana przez klienta dla punktów końcowych i punktów końcowych UDP w wystąpieniach ról. Element LoadBalancerProbe
nie jest autonomicznym elementem— jest połączony z rolą internetową lub rolą procesu roboczego w pliku definicji usługi. Więcej niż jedna rola może używać funkcji LoadBalancerProbe
.
Domyślnym rozszerzeniem pliku definicji usługi jest csdef.
Funkcja sondy modułu równoważenia obciążenia
Usługa Azure Load Balancer jest odpowiedzialna za kierowanie ruchu przychodzącego do instancji ról. Moduł równoważenia obciążenia określa, które wystąpienia mogą odbierać ruch, regularnie sprawdzając każde wystąpienie, aby określić stan wystąpienia. Sondy modułu równoważenia obciążenia sprawdzają każde wystąpienie wiele razy na minutę. Istnieją dwie różne opcje zapewnienia stanu zdrowia instancji dla modułu równoważenia obciążenia — domyślna sonda równoważenia obciążenia lub niestandardowa sonda równoważenia obciążenia, którą implementuje się, definiując sondę LoadBalancerProbe w pliku csdef.
Domyślna sonda load balancera korzysta z Guest Agenta wewnątrz maszyny wirtualnej, który nasłuchuje i odpowiada kodem HTTP 200 OK tylko wtedy, gdy wystąpienie jest w stanie Gotowym (na przykład gdy wystąpienie nie znajduje się w stanie Zajętym, Odtwarzanie, Zatrzymywanie itp.). Jeśli agent gościa nie odpowie przy użyciu protokołu HTTP 200 OK, usługa Azure Load Balancer oznaczy wystąpienie jako nieodpowiadujące i przestanie wysyłać ruch do tego wystąpienia. Usługa Azure Load Balancer nadal wysyła polecenie ping do wystąpienia, a jeśli agent gościa odpowie z odpowiedzią HTTP 200, usługa Azure Load Balancer kieruje ruch do tego wystąpienia ponownie. W przypadku korzystania z roli internetowej kod witryny internetowej zwykle jest uruchamiany w w3wp.exe, który nie jest monitorowany przez infrastrukturę Azure ani agenta gościa, co oznacza, że błędy w w3wp.exe (na przykład odpowiedzi HTTP 500) nie są zgłaszane do agenta gościa, a moduł równoważenia obciążenia nie wie, aby usunąć to wystąpienie z rotacji.
Niestandardowa sonda modułu równoważenia obciążenia zastępuje domyślną sondę agenta gościa i pozwala na utworzenie własnej logiki niestandardowej w celu określenia kondycji instancji roli. Moduł równoważenia obciążenia regularnie sprawdza punkt końcowy (domyślnie co 15 sekund), a instancja jest włączana do rotacji, jeśli odpowiada za pomocą protokołu TCP ACK lub HTTP 200 w okresie limitu czasu (domyślnie 31 sekund). Może to być przydatne do zaimplementowania własnej logiki w celu usunięcia wystąpień z rotacji równoważnika obciążenia, na przykład zwrócenia statusu innego niż 200, jeśli wystąpienie przekracza 90% użycia CPU. W przypadku ról internetowych korzystających z w3wp.exe oznacza to również automatyczne monitorowanie strony internetowej, ponieważ błędy w kodzie strony internetowej zwracają status inny niż 200 do sondy równoważnika obciążenia. Jeśli nie zdefiniujesz elementu LoadBalancerProbe w pliku csdef, zostanie użyte domyślne zachowanie modułu równoważenia obciążenia (zgodnie z wcześniejszym opisem).
Jeśli używasz niestandardowej sondy równoważnika obciążenia, upewnij się, że twoja logika uwzględnia metodę RoleEnvironment.OnStop. Jeśli używasz domyślnej sondy równoważenia obciążenia, wystąpienie jest wyłączane z rotacji przed wywołaniem OnStop, ale niestandardowa sonda równoważenia obciążenia może nadal zwracać 200 OK podczas zdarzenia OnStop. Jeśli używasz zdarzenia OnStop do czyszczenia pamięci podręcznej, zatrzymywania usługi lub w inny sposób wprowadzania zmian, które mogą mieć wpływ na zachowanie środowiska uruchomieniowego usługi, musisz upewnić się, że niestandardowa logika sondy modułu równoważenia obciążenia usuwa wystąpienie z rotacji.
Podstawowy schemat definicji usługi dla sondy równoważenia obciążenia
Podstawowy format pliku definicji usługi zawierającego sondę równoważenia obciążenia jest następujący.
<ServiceDefinition …>
<LoadBalancerProbes>
<LoadBalancerProbe name="<load-balancer-probe-name>" protocol="[http|tcp]" path="<uri-for-checking-health-status-of-vm>" port="<port-number>" intervalInSeconds="<interval-in-seconds>" timeoutInSeconds="<timeout-in-seconds>"/>
</LoadBalancerProbes>
</ServiceDefinition>
Elementy schematu
Element LoadBalancerProbes
pliku definicji usługi zawiera następujące elementy:
LoadBalancerProbes, element
Element LoadBalancerProbes
opisuje kolekcję sond modułu równoważenia obciążenia. Ten element jest elementem nadrzędnym elementu LoadBalancerProbe.
LoadBalancerProbe jako element
Element LoadBalancerProbe
definiuje sondę kondycji dla modelu. Można zdefiniować wiele sond modułu równoważenia obciążenia.
W poniższej tabeli opisano atrybuty LoadBalancerProbe
elementu:
Atrybut | Typ | Opis |
---|---|---|
name |
string |
Wymagane. Nazwa sondy modułu równoważenia obciążenia. Nazwa musi być unikatowa. |
protocol |
string |
Wymagane. Określa protokół punktu końcowego. Możliwe wartości to http lub tcp . Jeśli tcp zostanie określony, odbiór ACK jest wymagany, aby sonda zakończyła się pomyślnie. Jeśli http zostanie określona, odpowiedź 200 OK z określonego identyfikatora URI jest wymagana, aby sonda zakończyła się pomyślnie. |
path |
string |
Identyfikator URI używany do sprawdzenia stanu zdrowia maszyny wirtualnej (VM).
path jest wymagane, jeśli protocol jest ustawione na http . W przeciwnym razie nie jest to dozwolone.Nie ma wartości domyślnej. |
port |
integer |
Opcjonalny. Port do komunikowania sondy. Ten atrybut jest opcjonalny dla dowolnego punktu końcowego, ponieważ ten sam port jest używany dla sondy. Można również skonfigurować inny port na potrzeby sondowania. Możliwe wartości wahają się od 1 do 65535 włącznie. Domyślna wartość ustawiona przez punkt dostępowy. |
intervalInSeconds |
integer |
Opcjonalny. Interwał w sekundach określa, jak często sondować punkt końcowy pod kątem stanu kondycji. Zazwyczaj interwał jest nieco krótszy niż połowa przydzielonego czasu oczekiwania (w sekundach), co pozwala na wykonanie dwóch pełnych sond zanim instancja zostanie wycofana z rotacji. Wartość domyślna to 15. Wartość minimalna to 5. |
timeoutInSeconds |
integer |
Opcjonalny. Okres limitu czasu, w sekundach, stosowany do sondy, w którym brak odpowiedzi skutkuje zatrzymaniem dalszego przekazywania ruchu do punktu końcowego. Ta wartość umożliwia wyjęcie punktów końcowych z rotacji szybciej lub wolniej niż typowe czasy używane na platformie Azure (które są wartościami domyślnymi). Wartość domyślna to 31. Wartość minimalna to 11. |
Zobacz też
Schemat definicji usługi w chmurze (wsparcie dodatkowe).