W tym artykule omówiono niektóre często zadawane pytania dotyczące usługi Microsoft Azure Service Bus. Możesz również odwiedzić często zadawane pytania dotyczące pomocy technicznej platformy Azure, aby uzyskać ogólne informacje o cenach i pomocy technicznej platformy Azure.
Ogólne pytania dotyczące usługi Azure Service Bus
Co to jest usługa Azure Service Bus?
Usługa Azure Service Bus to asynchroniczna platforma do obsługi komunikatów w chmurze, która umożliwia wysyłanie danych między systemami oddzielonymi. Firma Microsoft oferuje tę funkcję jako usługę, co oznacza, że nie musisz hostować własnego sprzętu, aby go używać.
Co to jest przestrzeń nazw usługi Service Bus?
Przestrzeń nazw udostępnia kontener określania zakresu na potrzeby adresowania zasobów usługi Service Bus w aplikacji. Utworzenie przestrzeni nazw jest niezbędne do korzystania z usługi Service Bus i jest jednym z pierwszych kroków w rozpoczęciu pracy.
Co to jest kolejka usługi Azure Service Bus?
Kolejka usługi Service Bus to jednostka, w której są przechowywane komunikaty. Kolejki są przydatne, gdy masz wiele aplikacji lub wiele części aplikacji rozproszonej, które muszą komunikować się ze sobą. Kolejka jest podobna do centrum dystrybucji w tym, że wiele produktów (komunikatów) jest odbieranych, a następnie wysyłanych z tej lokalizacji.
Co to są tematy i subskrypcje usługi Azure Service Bus?
Temat można wizualizować jako kolejkę, a w przypadku korzystania z wielu subskrypcji staje się bardziej rozbudowanym modelem obsługi komunikatów; zasadniczo narzędzie komunikacji jeden do wielu. Ten model publikowania/subskrybowania (lub pub/sub) umożliwia aplikacji wysyłającej komunikat do tematu z wieloma subskrypcjami w celu odebrania tego komunikatu przez wiele aplikacji.
Co to jest jednostka partycjonowana?
Tradycyjna kolejka lub temat jest obsługiwana przez jednego brokera komunikatów i przechowywana w jednym magazynie obsługi komunikatów. Partycjonowana kolejka lub temat jest obsługiwany przez wielu brokerów komunikatów i przechowywanych w wielu magazynach obsługi komunikatów. Ta funkcja oznacza, że ogólna przepływność partycjonowanej kolejki lub tematu nie jest już ograniczona przez wydajność pojedynczego brokera komunikatów lub magazynu komunikatów. Ponadto tymczasowa awaria magazynu komunikatów nie renderuje partycjonowanej kolejki ani tematu niedostępnego.
Kolejność nie jest zapewniona podczas korzystania z partycjonowanych jednostek. W przypadku niedostępności partycji nadal można wysyłać i odbierać komunikaty z innych partycji.
Gdzie usługa Azure Service Bus przechowuje dane?
Warstwa Standardowa usługi Azure Service Bus korzysta z usługi Azure SQL Database dla warstwy magazynu zaplecza. W przypadku wszystkich regionów z wyjątkiem Brazylii Południowej i Azji Południowo-Wschodniej kopia zapasowa bazy danych jest hostowana w innym regionie (zazwyczaj sparowanym regionie platformy Azure). W przypadku regionów Brazylii południowej i Azji Południowo-Wschodniej kopie zapasowe bazy danych są przechowywane w tym samym regionie, aby spełnić wymagania dotyczące przechowywania danych dla tych regionów.
Warstwa Premium usługi Azure Service Bus przechowuje metadane i dane w wybranych regionach. Po skonfigurowaniu odzyskiwania po awarii geograficznej dla przestrzeni nazw usługi Azure Service Bus w warstwie Premium metadane są kopiowane do wybranego regionu pomocniczego.
Jakie porty należy otworzyć w zaporze?
Do wysyłania i odbierania komunikatów można użyć następujących protokołów w usłudze Azure Service Bus:
- Advanced Message Queuing Protocol 1.0 (AMQP)
- Protokół transferu hipertekstowego 1.1 z protokołem TLS (HTTPS)
Zapoznaj się z poniższą tabelą dla wychodzących portów TCP, które należy otworzyć, aby używać tych protokołów do komunikowania się z usługą Azure Service Bus:
Protokół | Porty | Szczegóły |
---|---|---|
AMQP | 5671, 5672 | Protokół AMQP z protokołem TLS. Zobacz Przewodnik po protokole AMQP |
HTTPS | 443 | Ten port jest używany dla interfejsu API HTTP/REST i dla obiektów AMQP-over-WebSocket |
Port HTTPS jest zwykle wymagany do komunikacji wychodzącej również wtedy, gdy protokół AMQP jest używany za pośrednictwem portu 5671, ponieważ kilka operacji zarządzania wykonywanych przez zestawy SDK klienta i uzyskiwanie tokenów z identyfikatora Entra firmy Microsoft (w przypadku użycia) działa za pośrednictwem protokołu HTTPS.
Oficjalne zestawy SDK platformy Azure zwykle używają protokołu AMQP do wysyłania i odbierania komunikatów z usługi Service Bus.
Opcja protokołu AMQP-over-WebSockets działa na porcie TCP 443 podobnie jak w przypadku interfejsu API HTTP/REST, ale w przeciwnym razie jest funkcjonalnie identyczna z zwykłym protokołem AMQP. Ta opcja ma większe początkowe opóźnienie połączenia ze względu na dodatkowe uściski dłoni i nieco większe obciążenie w miarę kompromisu w przypadku udostępniania portu HTTPS. Jeśli ten tryb jest wybrany, port TCP 443 jest wystarczający do komunikacji. Poniższe opcje umożliwiają wybranie trybu protokołu WebSocket protokołu AMQP.
Język | Opcja |
---|---|
.NET (Azure.Messaging.ServiceBus) | Utwórz element ServiceBusClient przy użyciu konstruktora, który przyjmuje parametr ServiceBusClientOptions . Ustaw parametr ServiceBusClientOptions.TransportType na wartość ServiceBusTransportType.AmqpWebSockets |
.NET (Microsoft.Azure.ServiceBus) | Podczas tworzenia obiektów klienta użyj konstruktorów, które przyjmują parametry TransportType, ServiceBus Połączenie ion lub ServiceBus Połączenie ionStringBuilder. Dla konstrukcji, która przyjmuje W przypadku konstruktora, który przyjmuje Jeśli używasz |
Java (com.azure.messaging.servicebus) | Podczas tworzenia klientów ustaw parametr ServiceBusClientBuilder.transportType na AmqpTransportType.AMQP.AMQP_WEB_SOCKETS |
Java (com.microsoft.azure.servicebus) | Podczas tworzenia klientów ustaw transportType wartość com.microsoft.azure.servicebus.Client Ustawienia na com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS |
JavaScript | Podczas tworzenia obiektów klienta usługi Service Bus użyj webSocketOptions właściwości ServiceBusClientOptions. |
Python | Podczas tworzenia klientów usługi Service Bus ustaw ServiceBusClient.transport_type na Wartość TransportType.AmqpOverWebSocket |
30 września 2026 r. wycofamy biblioteki zestawu SDK usługi Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus i com.microsoft.azure.servicebus, które nie są zgodne z wytycznymi dotyczącymi zestawu Azure SDK. Zakończymy również obsługę protokołu SBMP, więc nie będzie można już używać tego protokołu po 30 września 2026 r. Przeprowadź migrację do najnowszych bibliotek zestawu Azure SDK, które oferują krytyczne aktualizacje zabezpieczeń i ulepszone możliwości przed tą datą.
Mimo że starsze biblioteki mogą być nadal używane poza 30 września 2026 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.
Czy usługa Azure Service Bus obsługuje usługę Java Message Service (JMS)?
Tak. To robi. Odwiedź następujące artykuły:
Jakie adresy IP muszę dodać do listy dozwolonych?
Aby znaleźć odpowiednie adresy IP do dodania do listy dozwolonych połączeń, wykonaj następujące kroki:
Uruchom następujące polecenie w wierszu polecenia:
nslookup <YourNamespaceName>.servicebus.windows.net
Zanotuj adres IP zwrócony w pliku
Non-authoritative answer
.
Jeśli używasz nadmiarowości strefy dla przestrzeni nazw, musisz wykonać kilka dodatkowych kroków:
Najpierw uruchom polecenie nslookup w przestrzeni nazw.
nslookup <yournamespace>.servicebus.windows.net
Zanotuj nazwę w sekcji odpowiedzi nieautorytatywnej, która jest w jednym z następujących formatów:
<name>-s1.cloudapp.net <name>-s2.cloudapp.net <name>-s3.cloudapp.net
Uruchom polecenie nslookup dla każdego z sufiksami s1, s2 i s3, aby uzyskać adresy IP wszystkich trzech wystąpień uruchomionych w trzech strefach dostępności,
Uwaga
Adres IP zwracany przez
nslookup
polecenie nie jest statycznym adresem IP. Pozostaje ona stała do momentu usunięcia lub przeniesienia bazowego wdrożenia do innego klastra, jednak użycie adresów IN nie jest zalecane lub obsługiwane i należy śledzić zmiany adresów IP.
Gdzie mogę znaleźć adres IP klienta wysyłającego/odbierającego komunikaty do/z przestrzeni nazw?
Nie rejestrujemy adresów IP klientów wysyłających lub odbierających komunikaty do/z przestrzeni nazw. Wygeneruj ponownie klucze, aby wszyscy istniejący klienci nie mogli uwierzytelnić się i przejrzeć ustawień kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby zapewnić, że dostęp do przestrzeni nazw mają tylko dozwolone użytkownicy lub aplikacje.
Jeśli używasz przestrzeni nazw w warstwie Premium, użyj filtrowania adresów IP, punktów końcowych usługi sieci wirtualnej i prywatnych punktów końcowych, aby ograniczyć dostęp do przestrzeni nazw.
Najlepsze rozwiązania
Jakie są najlepsze rozwiązania dotyczące usługi Azure Service Bus?
Zobacz Najlepsze rozwiązania dotyczące ulepszeń wydajności przy użyciu usługi Service Bus — w tym artykule opisano sposób optymalizacji wydajności podczas wymiany komunikatów.
Co należy wiedzieć przed utworzeniem jednostek?
Następujące właściwości kolejki i tematu są niezmienne. Rozważ to ograniczenie podczas tworzenia jednostek, ponieważ nie można modyfikować tych właściwości bez tworzenia nowej jednostki zastępczej.
- Partycjonowanie
- Sesje
- Wykrywanie duplikatów
- Jednostka Express
Cennik
Ta sekcja zawiera odpowiedzi na niektóre często zadawane pytania dotyczące struktury cenowej usługi Service Bus.
W artykule Service Bus pricing and billing (Cennik i rozliczenia usługi Service Bus) wyjaśniono liczniki rozliczeniowe w usłudze Service Bus. Aby uzyskać szczegółowe informacje o opcjach cen usługi Service Bus, zobacz Szczegóły cennika usługi Service Bus.
Możesz również odwiedzić często zadawane pytania dotyczące pomocy technicznej platformy Azure, aby uzyskać ogólne informacje o cenach platformy Azure.
Jak naliczać opłaty za usługę Service Bus?
Aby uzyskać pełne informacje na temat cennika usługi Service Bus, zobacz Szczegóły cennika usługi Service Bus. Oprócz zanotowanych cen opłaty są naliczane za skojarzone transfery danych dla ruchu wychodzącego poza centrum danych, w którym jest aprowizowana aplikacja.
Jakie użycie usługi Service Bus podlega transferowi danych? Co nie jest?
Wszelkie transfery danych w danym regionie platformy Azure są udostępniane bez opłat, a także wszelkie przychodzące transfery danych. Transfer danych poza regionem podlega opłatom za ruch wychodzący, które można znaleźć tutaj.
Czy usługa Service Bus pobiera opłatę za magazyn?
L.p. Usługa Service Bus nie pobiera opłat za magazyn. Istnieje jednak limit przydziału ograniczający maksymalną ilość danych, które mogą być utrwalane dla kolejki/tematu. Zobacz następne często zadawane pytania.
Mam przestrzeń nazw usługi Service Bus w warstwie Standardowa. Dlaczego widzę opłaty w grupie zasobów "$system"?
Usługa Azure Service Bus niedawno uaktualniła składniki rozliczeń. Ze względu na tę zmianę, jeśli masz przestrzeń nazw usługi Service Bus w warstwie Standardowa, możesz zobaczyć elementy wiersza zasobu /subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system
w grupie $system
zasobów .
Te opłaty stanowią opłatę podstawową za subskrypcję platformy Azure, która aprowizowała przestrzeń nazw usługi Service Bus w warstwie Standardowa.
Należy pamiętać, że opłaty te nie są nowe, czyli istniały również w poprzednim modelu rozliczeń. Jedyną zmianą jest to, że są one teraz wymienione w obszarze $system
. Odbywa się to z powodu ograniczeń w nowym systemie rozliczeniowym, który grupuje opłaty na poziomie subskrypcji, a nie powiązane z określonym zasobem w ramach identyfikatora $system
zasobu.
Normy sprzedaży
Aby uzyskać listę limitów i przydziałów usługi Service Bus, zobacz Omówienie limitów przydziałów usługi Service Bus.
Jak obsługiwać komunikaty o rozmiarze > 1 MB?
Usługi obsługi komunikatów usługi Service Bus (kolejki i tematy/subskrypcje) umożliwiają aplikacji wysyłanie komunikatów o rozmiarze do 256 KB (warstwa Standardowa) lub 100 MB (warstwa Premium). Jeśli masz do czynienia z komunikatami o rozmiarze większym niż dozwolony rozmiar, użyj wzorca sprawdzania oświadczeń opisanego w tym wpisie w blogu.
Rozwiązywanie problemów
Dlaczego nie mogę utworzyć przestrzeni nazw po usunięciu jej z innej subskrypcji?
Po usunięciu przestrzeni nazw z subskrypcji poczekaj 4 godziny przed ponownym utworzeniem jej o tej samej nazwie w innej subskrypcji. W przeciwnym razie może zostać wyświetlony następujący komunikat o błędzie: Namespace already exists
.
Jakie są niektóre wyjątki generowane przez interfejsy API usługi Azure Service Bus i sugerowane akcje?
Aby uzyskać listę możliwych wyjątków usługi Service Bus, zobacz Omówienie wyjątków.
Co to jest sygnatura dostępu współdzielonego i które języki obsługują generowanie podpisu?
Sygnatury dostępu współdzielonego to mechanizm uwierzytelniania oparty na bezpiecznych skrótach SHA-256 lub identyfikatorach URI. Aby uzyskać informacje na temat generowania własnych podpisów w usługach Node.js, PHP, Java, Python i C#, zobacz artykuł Shared Access Signatures (Sygnatury dostępu współdzielonego).
Zarządzanie subskrypcjami i przestrzeniami nazw
Jak mogę przeprowadzić migrację przestrzeni nazw do innej subskrypcji platformy Azure?
Przestrzeń nazw można przenieść z jednej subskrypcji platformy Azure do innej przy użyciu witryny Azure Portal lub poleceń programu PowerShell. Aby wykonać operację, przestrzeń nazw musi być już aktywna. Użytkownik wykonujący polecenia musi być administratorem zarówno w subskrypcjach źródłowych, jak i docelowych.
Portal
Aby przeprowadzić migrację przestrzeni nazw usługi Service Bus do innej subskrypcji przy użyciu witryny Azure Portal, postępuj zgodnie z instrukcjami podanymi tutaj.
Program PowerShell
Poniższa sekwencja poleceń programu PowerShell przenosi przestrzeń nazw z jednej subskrypcji platformy Azure do innej. Aby wykonać tę operację, przestrzeń nazw musi być już aktywna, a użytkownik z uruchomionymi poleceniami programu PowerShell musi być administratorem zarówno w subskrypcjach źródłowych, jak i docelowych.
# Create a new resource group in target subscription
Select-AzSubscription -SubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff'
New-AzResourceGroup -Name 'targetRG' -Location 'East US'
# Move namespace from source subscription to target subscription
Select-AzSubscription -SubscriptionId 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
$res = Find-AzResource -ResourceNameContains mynamespace -ResourceType 'Microsoft.ServiceBus/namespaces'
Move-AzResource -DestinationResourceGroupName 'targetRG' -DestinationSubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff' -ResourceId $res.ResourceId
Czy można wyłączyć protokół TLS 1.0 lub 1.1 w przestrzeniach nazw usługi Service Bus?
Tak, można wyłączyć protokół TLS 1.0 lub 1.1 w przestrzeniach nazw usługi Service Bus, ustawiając minimalną wersję protokołu TLS. Aby uzyskać więcej informacji, zobacz Wymuszanie minimalnej wymaganej wersji protokołu Transport Layer Security (TLS) dla żądań do przestrzeni nazw usługi Service Bus.
Następne kroki
Aby dowiedzieć się więcej o usłudze Service Bus, zobacz następujące artykuły:
- Wprowadzenie do usługi Azure Service Bus Premium (wpis w blogu)
- Wprowadzenie do usługi Azure Service Bus Premium (Channel9)
- Omówienie usługi Service Bus
- Wprowadzenie do kolejek usługi Service Bus