Łączenie jednostek usługi Service Bus z autoforwardingiem
Funkcja automatycznego przesłaniania usługi Service Bus umożliwia łączenie kolejki lub subskrypcji z inną kolejką lub tematem, który jest częścią tej samej przestrzeni nazw. Po włączeniu automatycznego wywłaszania usługa Service Bus automatycznie usuwa komunikaty umieszczone w pierwszej kolejce lub subskrypcji (źródle) i umieszcza je w drugiej kolejce lub temacie (miejscu docelowym). Nadal można wysłać wiadomość bezpośrednio do jednostki docelowej.
Uwaga
Warstwa podstawowa usługi Service Bus nie obsługuje funkcji autoforwardingu. Aby uzyskać różnice między warstwami, zobacz Cennik usługi Service Bus.
Jednostka docelowa musi istnieć w momencie utworzenia jednostki źródłowej. Jeśli jednostka docelowa nie istnieje, usługa Service Bus zwraca wyjątek po wyświetleniu monitu o utworzenie jednostki źródłowej.
Scenariusze
Skalowanie w poziomie pojedynczego tematu
Możesz użyć autoforwardingu, aby skalować pojedynczy temat w poziomie. Usługa Service Bus ogranicza liczbę subskrypcji w danym temacie do 2000. Więcej subskrypcji można uwzględnić, tworząc tematy drugiego poziomu. Nawet jeśli ograniczenie usługi Service Bus nie jest związane z liczbą subskrypcji, dodanie drugiego poziomu tematów może poprawić ogólną przepływność tematu.
Rozdziel nadawców komunikatów od odbiorników
Możesz również użyć autoforwardingu, aby rozdzielić nadawców komunikatów od odbiorników. Rozważmy na przykład system planowania zasobów przedsiębiorstwa (ERP), który składa się z trzech modułów: przetwarzania zamówień, zarządzania zapasami i zarządzania relacjami z klientami. Każdy z tych modułów generuje komunikaty, które są w kolejce do odpowiedniego tematu. Alice i Bob są przedstawicielami handlowymi, którzy są zainteresowani wszystkimi wiadomościami, które odnoszą się do swoich klientów. Aby odbierać te komunikaty, Alice i Bob tworzą kolejkę osobistą i subskrypcję w każdym z tematów ERP, które automatycznie przekazują wszystkie komunikaty do kolejki.
Jeśli Alice idzie na wakacje, jej osobista kolejka, a nie temat ERP, wypełnia. W tym scenariuszu, ponieważ przedstawiciel handlowy nie otrzymał żadnych komunikatów, żaden z tematów ERP nigdy nie osiągnie limitu przydziału.
Uwaga
W przypadku konfigurowania autoforwarding wartość dla AutoDeleteOnIdle
jednostki źródłowej jest automatycznie ustawiana na maksymalną wartość typu danych.
- Po stronie źródłowej autoforwarding działa jako operacja odbierania, więc źródło, które ma włączoną automatyczną obsługę, nigdy nie jest tak naprawdę "bezczynne", dlatego nie zostanie automatycznie usunięte.
- Autoforwarding nie wprowadza żadnych zmian w jednostce docelowej. Jeśli
AutoDeleteOnIdle
jest włączona w jednostce docelowej, jednostka zostanie automatycznie usunięta, jeśli jest nieaktywna dla określonego interwału bezczynności. Zalecamy, aby nie włączaćAutoDeleteOnIdle
w jednostce docelowej, ponieważ jeśli jednostka docelowa zostanie usunięta, jednostka źródłowa będzie stale widzieć wyjątki podczas próby przekazania komunikatów do tego miejsca docelowego.
Zagadnienia dotyczące autoforwardingu
- Usługa Service Bus nie zezwala na tworzenie odbiornika komunikatów w jednostce źródłowej z włączonym automatycznym wdrażaniem.
- Jeśli jednostka docelowa gromadzi zbyt wiele komunikatów i przekracza limit przydziału lub jednostka docelowa jest wyłączona, jednostka źródłowa dodaje komunikaty do kolejki utraconych komunikatów do momentu ponownego włączenia miejsca w miejscu docelowym (lub jednostka jest ponownie włączona). Te komunikaty nadal działają w kolejce utraconych komunikatów, więc należy jawnie odbierać je i przetwarzać z kolejki utraconych komunikatów.
- Podczas łączenia łańcuchów poszczególnych tematów w celu uzyskania złożonego tematu z wieloma subskrypcjami zaleca się umiarkowaną liczbę subskrypcji w temacie pierwszego poziomu i wielu subskrypcjach w tematach drugiego poziomu. Na przykład temat pierwszego poziomu z 20 subskrypcjami, każdy z nich w łańcuchu do tematu drugiego poziomu z 200 subskrypcjami, umożliwia uzyskanie wyższej przepływności niż temat pierwszego poziomu z 200 subskrypcjami, z których każdy jest łańcuchem do tematu drugiego poziomu z 20 subskrypcjami.
- Usługa Service Bus rozlicza jedną operację dla każdego przekazanego komunikatu. Na przykład wysłanie komunikatu do tematu z 20 subskrypcjami, z których każda została skonfigurowana do automatycznego wysyłania komunikatów do innej kolejki lub tematu, jest rozliczana jako 21 operacji, jeśli wszystkie subskrypcje pierwszego poziomu otrzymają kopię komunikatu.
- Aby utworzyć subskrypcję, która jest w łańcuchu do innej kolejki lub tematu, twórca subskrypcji musi mieć uprawnienia Zarządzanie zarówno w jednostce źródłowej, jak i docelowej. Wysyłanie komunikatów do tematu źródłowego wymaga tylko uprawnień wyślij do tematu źródłowego.
- Nie twórz łańcucha, który przekracza cztery przeskoki. Komunikaty, które przekraczają cztery przeskoki, są nieaktywne. Liczba przeskoku komunikatu jest zwiększana, gdy komunikat jest automatycznieforowany z jednej kolejki lub tematu do innej kolejki lub tematu. Liczba przeskoku komunikatu może być również zwiększana w scenariuszu wysyłania za pośrednictwem scenariusza, w którym komunikat jest wysyłany za pośrednictwem kolejki transferu.
- Autoforwarding nie jest obsługiwany w przypadku kolejek ani subskrypcji z włączoną obsługą sesji.
- Kolejka źródłowa próbuje przekazać komunikaty do jednostki docelowej w takiej samej kolejności, jak odebrana, ale miejsce docelowe może być tematem, który nie obsługuje zamawiania. Jeśli jednostka źródłowa lub docelowa jest jednostką partycjonowaną, kolejność nie jest gwarantowana.
Następne kroki
Aby dowiedzieć się, jak włączyć lub wyłączyć automatyczne przekazywanie dalej na różne sposoby (witryna Azure Portal, program PowerShell, interfejs wiersza polecenia, szablon usługi Azure Resource Management itp.), zobacz Włączanie automatycznego przesyłania dalej dla kolejek i subskrypcji.