Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla wszystkich klientów od 1 września 2024 r. Wszystkie istniejące uruchomione wdrożenia zostaną zatrzymane i zamknięte przez firmę Microsoft, a dane zostaną trwale utracone od października 2024 r. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager w usługach Azure Cloud Services (wsparcie dodatkowe).
Sonda równoważnika obciążenia to sonda zdrowia zdefiniowana przez klienta dla punktów końcowych UDP i punktów końcowych w instancjach 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 w celu określenia stanu tego wystąpienia. Moduł równoważenia obciążenia bada każde wystąpienie wiele razy na minutę. Istnieją dwie różne opcje oceny stanu 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óra jest implementowana przez zdefiniowanie LoadBalancerProbe w pliku .csdef.
Domyślna sonda modułu równoważenia obciążenia korzysta z Agenta Gościa wewnątrz maszyny wirtualnej, który nasłuchuje i odpowiada z odpowiedzią HTTP 200 OK jedynie wtedy, gdy wystąpienie jest w stanie Gotowe (na przykład, gdy wystąpienie nie znajduje się w stanie Zajęty, Ponowne uruchamianie, 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 przy użyciu protokołu HTTP 200, usługa Azure Load Balancer ponownie kieruje ruch do tego wystąpienia. W przypadku korzystania z roli webowej kod Twojej witryny zwykle jest uruchamiany w procesie w3wp.exe, które nie są monitorowane przez usługę Azure Fabric oraz agenta gości. Błędy w w3wp.exe (na przykład odpowiedzi HTTP 500) nie są zgłaszane do agentowi gościa, a moduł równoważenia obciążenia nie wie, aby wyłączyć tę instancję z rotacji.
Niestandardowa sonda równoważenia obciążenia zastępuje domyślną sondę gościa i umożliwia utworzenie własnej niestandardowej logiki w celu ustalenia stanu instancji roli. Moduł równoważenia obciążenia regularnie sonduje punkt końcowy (domyślnie co 15 sekund). Wystąpienie jest brane pod uwagę w rotacji, jeśli odpowiada za pomocą TCP ACK lub HTTP 200 w czasie oczekiwania (domyślnie 31 sekund). Ten proces może być przydatny do zaimplementowania własnej logiki w celu usunięcia wystąpień z rotacji modułu równoważenia obciążenia (na przykład zwracanie stanu innego niż 200, jeśli wystąpienie jest powyżej 90% procesora CPU). W przypadku ról sieciowych korzystających z w3wp.exe, ta konfiguracja oznacza również automatyczne monitorowanie strony internetowej, ponieważ błędy w kodzie strony zwracają status inny niż 200 do sondy równoważenia 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 modułu równoważenia obciążenia, upewnij się, że Twoja logika uwzględnia metodę RoleEnvironment.OnStop. Jeśli używasz domyślnej sondy równoważenia obciążenia, instancja jest usuwana 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 wprowadzania zmian, które mogą mieć wpływ na zachowanie środowiska uruchomieniowego usługi, musisz upewnić się, że niestandardowa logika sondy równoważenia obciążenia usuwa instancję z rotacji.
Podstawowy schemat definicji usługi dla sondy równoważnika obciążenia
Podstawowy format pliku definicji usługi zawierającego sondę modułu 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, 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:
| [No changes needed]) | Typ | Opis |
|---|---|---|
name |
string |
To jest wymagane. Nazwa sondy modułu równoważenia obciążenia. Nazwa musi być unikatowa. |
protocol |
string |
To jest wymagane. Określa protokół punktu końcowego. Możliwe wartości to http lub tcp. Jeśli tcp zostanie określony, odebrane ACK jest wymagane, aby próba zakończyła się sukcesem. Jeśli określono http, wymagana jest odpowiedź 200 OK z określonego URI, aby sonda zakończyła się pomyślnie. |
path |
string |
Identyfikator URI używany do żądania stanu kondycji maszyny wirtualnej.
path jest wymagany, 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ść ustalona przez punkt końcowy. |
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 limitu czasu (w sekundach), co pozwala na wykonanie dwóch pełnych sond przed wyłączeniem instancji z rotacji. Wartość domyślna to 15. Wartość minimalna to 5. |
timeoutInSeconds |
integer |
Opcjonalny. Okres czasu, w sekundach, stosowany do sondy, gdy brak odpowiedzi skutkuje zatrzymaniem przesyłania dalszego 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. |