Udostępnij za pośrednictwem


Usługa Event Hubs — często zadawane pytania

Ogólne

Co to jest przestrzeń nazw usługi Azure Event Hubs?

Przestrzeń nazw to zakresowy kontener dla centrów zdarzeń lub tematów Kafka. Zapewnia Ci unikatowy FQDN. Przestrzeń nazw służy jako kontener aplikacji, który może zawierać wiele centrów zdarzeń lub tematów platformy Kafka.

Czy można zmienić warstwę cenową po wdrożeniu?

Nie Po wdrożeniu nie można zmienić (na przykład) z warstwy Standardowa na warstwę Premium bez wdrażania nowego zasobu.

Kiedy utworzyć nową przestrzeń nazw i użyć istniejącej przestrzeni nazw?

Alokacje pojemności jednostek przepływności (TU) lub jednostek przetwarzania (PU) są rozliczane na poziomie przestrzeni nazw. Przestrzeń nazw jest również skojarzona z regionem.

Możesz utworzyć nową przestrzeń nazw zamiast używać istniejącej w jednym z następujących scenariuszy:

  • Potrzebujesz centrum zdarzeń skojarzonego z nowym regionem.
  • Potrzebujesz centrum zdarzeń skojarzonego z inną subskrypcją.
  • Potrzebujesz Event Hub z odrębnym przydziałem pojemności (oznacza to, że potrzeba pojemności dla przestrzeni nazw z dodanym Event Hub przekroczy próg 40 TU i nie chcesz przechodzić do dedykowanego klastra).

Jaka jest różnica między warstwami podstawową i standardową w usłudze Event Hubs?

Warstwa Standardowa usługi Azure Event Hubs udostępnia funkcje wykraczające poza to, co jest dostępne w warstwie Podstawowa. Dostępne są następujące funkcje w warstwie Standardowa:

Aby uzyskać więcej informacji na temat warstw cenowych, w tym usługi Event Hubs Dedicated, zobacz szczegóły cennika usługi Event Hubs.

Gdzie jest dostępna usługa Azure Event Hubs?

Usługa Azure Event Hubs jest dostępna we wszystkich obsługiwanych regionach świadczenia usługi Azure. Aby zapoznać się z listą, odwiedź stronę Regionów świadczenia usługi Azure.

Czy mogę użyć jednego połączenia protokołu Advanced Message Queuing Protocol (AMQP) do wysyłania i odbierania z wielu hubów zdarzeń?

Tak, o ile wszystkie centra zdarzeń znajdują się w tej samej przestrzeni nazw.

Jaki jest maksymalny okres przechowywania zdarzeń?

Warstwa Standardowa usługi Event Hubs obsługuje obecnie maksymalny okres przechowywania wynoszący siedem dni, natomiast w przypadku warstwy Premium i dedykowanej ten limit wynosi 90 dni. Centra zdarzeń nie są przeznaczone jako trwały magazyn danych. Okresy przechowywania większe niż 24 godziny są przeznaczone dla scenariuszy, w których wygodne jest odtwarzanie strumienia zdarzeń w tych samych systemach. Aby na przykład wytrenować lub zweryfikować nowy model uczenia maszynowego na istniejących danych. Jeśli potrzebujesz przechowywania komunikatów powyżej siedmiu dni, włączenie funkcji przechwytywania usługi Event Hubs w centrum zdarzeń powoduje ściąganie danych z centrum zdarzeń do wybranego konta usługi Storage lub konta usługi Azure Data Lake Service. Włączenie funkcji Przechwytywanie powoduje naliczanie opłat na podstawie zakupionych jednostek przepływności.

Można skonfigurować okres przechowywania przechwyconych danych na Twoim koncie przechowywania. Funkcja zarządzania cyklem życia usługi Azure Storage oferuje zaawansowane zasady oparte na regułach dla kont przeznaczenia ogólnego w wersji 2 oraz kont magazynu obiektów blob. Użyj zasady, aby przenieść dane do odpowiednich warstw dostępu albo by dane wygasły na końcu okresu życia danych. Aby uzyskać więcej informacji, zobacz Zarządzanie cyklem życia usługi Azure Blob Storage.

Jak mogę monitorować moje centra zdarzeń?

Usługa Event Hubs emituje wyczerpujące metryki, które przedstawiają stan zasobów w usłudze Azure Monitor. Umożliwiają one również ocenę ogólnej kondycji usługi Event Hubs nie tylko na poziomie przestrzeni nazw, ale także na poziomie jednostki. Dowiedz się więcej o tym, jakie monitorowanie jest oferowane dla usługi Azure Event Hubs.

Gdzie usługa Azure Event Hubs przechowuje dane?

Usługa Azure Event Hubs w warstwach Standardowej, Premium i Dedykowanej przechowuje i przetwarza dane publikowane w regionie, który wybierasz podczas tworzenia przestrzeni nazw Azure Event Hubs. Domyślnie dane klientów pozostają w tym regionie. Po skonfigurowaniu odzyskiwania po awarii geograficznej dla namespace'a usługi Azure Event Hubs metadane są kopiowane do wybranego regionu zapasowego. W związku z tym ta usługa automatycznie spełnia wymagania dotyczące przechowywania danych w regionie, w tym te określone w Centrum zaufania.

Jakich protokołów mogę używać do wysyłania i odbierania zdarzeń?

Producenci lub nadawcy mogą wysyłać zdarzenia do centrum zdarzeń przy użyciu protokołu Advanced Messaging Queuing Protocol (AMQP), Kafka lub HTTPS.

Odbiorcy używają protokołu AMQP lub Kafka do odbierania zdarzeń z hubu zdarzeń. Usługa Event Hubs obsługuje tylko model ściągania, który umożliwia konsumentom odbieranie z niego zdarzeń. Nawet gdy używasz procedur obsługi zdarzeń do zarządzania zdarzeniami w centrum zdarzeń, procesor zdarzeń wewnętrznie korzysta z modelu ściągania, aby je odbierać.

AMQP

Protokół AMQP 1.0 umożliwia wysyłanie zdarzeń do usługi Azure Event Hubs i odbieranie zdarzeń. Protokół AMQP zapewnia niezawodną, wydajną i bezpieczną komunikację zarówno do wysyłania, jak i odbierania zdarzeń. Można go używać do przesyłania strumieniowego o wysokiej wydajności i czasie rzeczywistym i jest obsługiwany przez większość zestawów SDK usługi Azure Event Hubs.

HTTPS/REST API

Zdarzenia można wysyłać tylko do usługi Event Hubs przy użyciu żądań HTTP POST. Usługa Event Hubs nie obsługuje odbierania zdarzeń za pośrednictwem protokołu HTTPS. Jest odpowiedni dla lekkich klientów, gdzie bezpośrednie połączenie TCP nie jest możliwe.

Apache Kafka

Usługa Azure Event Hubs ma wbudowany punkt końcowy platformy Kafka, który obsługuje producentów i konsumentów platformy Kafka. Aplikacje utworzone przy użyciu platformy Kafka mogą używać protokołu Kafka (w wersji 1.0 lub nowszej) do wysyłania i odbierania zdarzeń z usługi Event Hubs bez żadnych zmian w kodzie.

Zestawy SDK platformy Azure tworzą abstrakcję podstawowych protokołów komunikacyjnych i zapewniają uproszczony sposób wysyłania i odbierania zdarzeń z usługi Event Hubs przy użyciu języków takich jak C#, Java, Python, JavaScript itp.

Jakie porty należy otworzyć w zaporze?

Do wysyłania i odbierania zdarzeń można użyć następujących protokołów w usłudze Azure Event Hubs:

  • Advanced Message Queuing Protocol 1.0 (AMQP)
  • Protokół hypertext Transfer Protocol 1.1 z protokołem Transport Layer Security (HTTPS)
  • Apache Kafka

Poniższa tabela zawiera porty wychodzące, które należy otworzyć, aby używać tych protokołów do komunikowania się z usługą Azure Event Hubs.

Protokół Porty Szczegóły
AMQP 5671 i 5672 Zobacz Przewodnik po protokole AMQP
HTTPS 443 Ten port jest używany dla interfejsu API HTTP/REST oraz AMQP-over-WebSockets.
Kafka 9093 Zobacz Używanie usługi Event Hubs z aplikacji platformy Kafka

Port HTTPS jest wymagany do komunikacji wychodzącej również wtedy, gdy protokół AMQP jest używany przez port 5671, ponieważ kilka operacji zarządzania wykonywanych przez zestawy SDK klienta i uzyskiwanie tokenów z identyfikatora Entra firmy Microsoft (jeśli jest używane) działa za pośrednictwem protokołu HTTPS.

Oficjalne zestawy SDK platformy Azure zwykle używają protokołu AMQP do wysyłania i odbierania zdarzeń z usługi Event Hubs. Opcja protokołu AMQP-over-WebSockets działa za pośrednictwem portu TCP 443, podobnie jak interfejs API HTTP, ale w przeciwnym razie jest funkcjonalnie taka sama jak zwykły protokół AMQP. Ta opcja ma większe opóźnienie początkowego połączenia z powodu dodatkowych rund uzgadniania oraz nieco większego obciążenia jako kompromis w związku z udostępnianiem portu HTTPS. Jeśli ten tryb jest wybrany, port TCP 443 jest wystarczający do komunikacji. Następujące opcje umożliwiają wybranie zwykłego trybu AMQP lub trybu AMQP WebSocket.

Język Opcja
.NET EventHubConnectionOptions.TransportType z właściwością EventHubsTransportType.AmqpTcp lub EventHubsTransportType.AmqpWebSockets
Java com.microsoft.azure.eventhubs.EventProcessorClientBuilder.transporttype z AmqpTransportType.AMQP lub AmqpTransportType.AMQP_WEB_SOCKETS
Node EventHubConsumerClientOptions ma właściwość webSocketOptions.
Python EventHubConsumerClient.transport_type z użyciem TransportType.Amqp lub TransportType.AmqpOverWebSocket

Jakie adresy IP muszę zezwolić?

Podczas pracy z platformą Azure czasami musisz zezwolić określonym zakresom adresów IP lub adresom URL w zaporze firmowej lub serwerze proxy na dostęp do wszystkich usług platformy Azure, których używasz lub których próbujesz użyć. Sprawdź, czy ruch jest dozwolony na adresach IP używanych przez usługę Event Hubs. Adresy IP używane przez usługę Azure Event Hubs: zobacz Zakresy adresów IP platformy Azure i tagi usług — chmura publiczna.

Sprawdź również, czy adres IP przestrzeni nazw jest dozwolony. Aby znaleźć odpowiednie adresy IP, aby zezwolić na połączenia, wykonaj następujące kroki:

  1. Uruchom następujące polecenie w wierszu polecenia:

    nslookup <YourNamespaceName>.servicebus.windows.net
    
  2. Zanotuj adres IP zwrócony w pliku Non-authoritative answer.

Jeśli używasz przestrzeni nazw hostowanej w starszym klastrze (w oparciu o usługi Cloud Services — CNAME kończące się na *.cloudapp.net), a przestrzeń nazw jest strefowo nadmiarowa, należy wykonać kilka dodatkowych kroków. Jeśli przestrzeń nazw znajduje się w nowszym klastrze (opartym na zestawie skalowania maszyn wirtualnych — CNAME kończącym się na *.cloudapp.azure.com), i jest strefowo nadmiarowa, możesz pominąć poniższe kroki.

  1. Najpierw uruchom polecenie nslookup w przestrzeni nazw.

    nslookup <yournamespace>.servicebus.windows.net
    
  2. 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
    
  3. 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 jednak stała do momentu usunięcia lub przeniesienia bazowego wdrożenia do innego klastra.

Jakie adresy IP klienta wysyłają zdarzenia do mojej przestrzeni nazw lub odbierają zdarzenia?

Najpierw włącz filtrowanie IP w przestrzeni nazw.

Następnie włącz dzienniki diagnostyczne dla zdarzeń połączenia sieci wirtualnej usługi Event Hubs, postępując zgodnie z instrukcjami w obszarze Włączanie dzienników diagnostycznych. Zostanie wyświetlony adres IP, dla którego połączenie zostało odrzucone.

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "IPAddress": "1.2.3.4",
    "Action": "Deny Connection",
    "Reason": "IPAddress doesn't belong to a subnet with Service Endpoint enabled.",
    "Count": "65",
    "ResourceId": "/subscriptions/0000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/microsoft.eventhub/namespaces/namespace-name",
    "Category": "EventHubVNetConnectionEvent"
}

Ważne

Dzienniki sieci wirtualnej są generowane tylko wtedy, gdy przestrzeń nazw zezwala na dostęp z określonych adresów IP (reguł filtrowania adresów IP). Jeśli nie chcesz ograniczać dostępu do przestrzeni nazw przy użyciu tych funkcji i nadal chcesz uzyskać dzienniki sieci wirtualnej w celu śledzenia adresów IP klientów łączących się z przestrzenią nazw usługi Event Hubs, możesz użyć następującego obejścia: Włącz filtrowanie adresów IP i dodaj łączny adresowalny zakres IPv4 (0.0.0.0/1 - 128.0.0.0/1) i zakres IPv6 ().::/1 - 8000::/1

Uwaga

Obecnie nie można określić źródłowego adresu IP pojedynczego komunikatu lub zdarzenia.

Integracja z platformą Apache Kafka

Jak mogę zintegrować istniejącą aplikację platformy Kafka z usługą Event Hubs?

Usługa Event Hubs udostępnia punkt końcowy platformy Kafka, który może być używany przez istniejące aplikacje oparte na platformie Apache Kafka. Zmiana konfiguracji to wszystko, co jest wymagane do posiadania środowiska Platformy Kafka PaaS. Stanowi alternatywę dla uruchamiania własnego klastra platformy Kafka. Usługa Event Hubs obsługuje platformę Apache Kafka 1.0 i nowsze wersje klienta oraz współpracuje z istniejącymi aplikacjami, narzędziami i strukturami platformy Kafka. Aby uzyskać więcej informacji, zobacz Event Hubs for Kafka repo (Usługa Event Hubs dla repozytorium platformy Kafka).

Jakie zmiany konfiguracji należy wprowadzić, aby moja istniejąca aplikacja mogła komunikować się z usługą Event Hubs?

Aby nawiązać połączenie z centrum zdarzeń, należy zaktualizować konfiguracje klienta platformy Kafka. Odbywa się to przez utworzenie przestrzeni nazw usługi Event Hubs i uzyskanie parametry połączenia. Zmień nazwę bootstrap.servers, aby wskazywała nazwę FQDN usługi Event Hubs i port na 9093. Zaktualizuj sasl.jaas.config, aby skierować klienta platformy Kafka do punktu końcowego usługi Event Hubs (czyli parametrów połączenia uzyskanych) przy użyciu poprawnego uwierzytelniania, jak pokazano poniżej:

bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
request.timeout.ms=60000
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Przykład:

bootstrap.servers=dummynamespace.servicebus.windows.net:9093
request.timeout.ms=60000
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://dummynamespace.servicebus.windows.net/;SharedAccessKeyName=DummyAccessKeyName;SharedAccessKey=XXXXXXXXXXXXXXXXXXXXX";

Uwaga

Jeśli sasl.jaas.config nie jest obsługiwaną konfiguracją w twojej strukturze, znajdź konfiguracje używane do ustawiania nazwy użytkownika i hasła w warstwie Simple Authentication and Security Layer (SASL), a następnie użyj ich. Ustaw nazwę użytkownika na $ConnectionString i hasło na parametry połączenia usługi Event Hubs.

Jaki jest rozmiar komunikatu/zdarzenia dla usługi Event Hubs?

Maksymalny dozwolony rozmiar komunikatu dla usługi Event Hubs wynosi 1 MB.

Jednostki przepływności

Co to są jednostki przepływności usługi Event Hubs? (Warstwa Standardowa)

Przepustowość w Event Hubs definiuje ilość danych w megabajtach lub liczbę zdarzeń 1-KB (w tysiącach) wchodzących i wychodzących za pomocą Event Hubs. Ta przepływność jest mierzona w jednostkach przepływności (TU). Kup jednostki TU przed rozpoczęciem korzystania z usługi Event Hubs. Możesz jawnie wybrać jednostki TU usługi Event Hubs przy użyciu portalu lub szablonów usługi Resource Manager usługi Event Hubs.

Czy jednostki przepływności mają zastosowanie do wszystkich centrów zdarzeń w przestrzeni nazw?

Tak, jednostki przepływności mają zastosowanie do wszystkich centrów zdarzeń w przestrzeni nazw usługi Event Hubs. Oznacza to, że kupujesz jednostki TU na poziomie przestrzeni nazw i są one współużytkowane przez centra zdarzeń w ramach tej przestrzeni nazw. Każdy TU przyznaje przestrzeni nazw następujące możliwości:

  • Maksymalnie 1 MB na sekundę zdarzeń wejściowych (zdarzeń wysyłanych do centrum zdarzeń), ale nie więcej niż 1000 zdarzeń wejściowych, operacji zarządzania lub wywołań interfejsu API sterowania na sekundę.
  • Do 2 MB na sekundę wydarzenia wyjściowego (wydarzenia zużywane z centrum wydarzeń), ale nie więcej niż 4096 wydarzeń wyjściowych.
  • Do 84 GB magazynu zdarzeń (wystarczy do domyślnego 1-godzinnego okresu przechowywania).

Jak są naliczane opłaty za jednostki przepływności?

Jednostki przepływności (TU) są rozliczane co godzinę. Rozliczenia są oparte na maksymalnej liczbie jednostek wybranych w danej godzinie.

Jak zoptymalizować użycie jednostek przepływności?

Możesz rozpocząć od jednej jednostki przepływowości (TU), i włączyć automatyczne zwiększanie. Funkcja autoinflate umożliwia zwiększanie liczby jednostek TU w miarę zwiększania się ruchu lub ładunku. Można również ustawić górny limit liczby jednostek TU.

Jak działa funkcja Autoinflate usługi Event Hubs?

Funkcja autoinflate umożliwia skalowanie w górę jednostek przepływności (TU). Oznacza to, że możesz zacząć od zakupu niewielkiej liczby jednostek TU, a system automatycznie zwiększy skalę jednostek TU w miarę wzrostu ruchu przychodzącego. Zapewnia ekonomiczną opcję i pełną kontrolę nad liczbą TU do zarządzania. Ta funkcja jest funkcją tylko do skalowania w górę i można całkowicie kontrolować skalowanie w dół liczby jednostek TU, aktualizując ją.

Możesz zacząć od jednostek o niskiej przepływności (TU), na przykład 2 TU. Jeśli przewidujesz, że ruch może wzrosnąć do 15 jednostek TU, włącz funkcję automatycznego rozszerzania w przestrzeni nazw i ustaw maksymalny limit na 15 jednostek TU. Teraz możesz automatycznie zwiększać TU w miarę jak ruch rośnie.

Czy po włączeniu funkcji automatycznego rozszerzania wiążą się jakieś koszty?

Ta funkcja nie wiąże się z żadnymi kosztami .

Czy można włączyć nadmiarowość stref dla istniejącej przestrzeni nazw Event Hubs?

Obecnie nie jest to możliwe, ponieważ stare przestrzenie nazw Event Hubs znajdują się w różnych klastrach i nie ma możliwości ich migracji do nowych klastrów, które automatycznie włączają nadmiarowość strefową podczas tworzenia nowych przestrzeni nazw Event Hubs.

W jaki sposób są wymuszane limity przepływności?

Jeśli łączna przepływność ruchu przychodzącego lub łączna szybkość zdarzeń ruchu przychodzącego we wszystkich centrach zdarzeń w przestrzeni nazw przekracza zagregowane przydziały jednostek przepływności, nadawcy są ograniczani i otrzymują błędy wskazujące, że limit przydziału ruchu przychodzącego został przekroczony.

Jeśli łączna przepływność ruchu wychodzącego lub łączna szybkość ruchu wychodzącego zdarzeń we wszystkich centrach zdarzeń w przestrzeni nazw przekracza zagregowane przydziały jednostek przepływności, odbiorniki są ograniczane, ale nie są generowane żadne błędy ograniczania przepustowości.

Limity przydziału ruchu przychodzącego i wychodzącego są wymuszane oddzielnie, dzięki czemu żaden nadawca nie może spowodować spowolnienia konsumpcji zdarzeń, ani żaden odbiorca nie może uniemożliwić przesyłania zdarzeń do centrum zdarzeń.

Czy istnieje limit liczby jednostek przepływności, które można zarezerwować/wybrać?

Podczas tworzenia przestrzeni nazw w warstwie Podstawowa lub Standardowa w witrynie Azure Portal możesz wybrać maksymalnie 40 jednostek TU dla przestrzeni nazw. Po przekroczeniu 40 jednostek TUs, usługa Event Hubs oferuje modele oparte na zasobach/pojemnościach, takie jak Event Hubs Premium i Event Hubs Dedicated. Aby uzyskać więcej informacji, zobacz Event Hubs Premium — omówienie i Usługa Event Hubs Dedicated — omówienie.

Dedykowane klastry

Co to jest dedykowany klaster?

Klastry dedykowane usługi Event Hubs oferują jednodzierżawowe wdrożenia dla klientów o najwyższych wymaganiach. Ta oferta tworzy klaster oparty na pojemności, który nie jest powiązany z jednostkami przepływności. Oznacza to, że można użyć klastra do pozyskiwania i przesyłania strumieniowego danych, jak określono przez użycie procesora i pamięci klastra. Aby uzyskać więcej informacji, zobacz Dedykowane klastry usługi Event Hubs.

Jak mogę utworzyć dedykowany klaster usługi Event Hubs?

Aby uzyskać instrukcje krok po kroku i więcej informacji na temat konfigurowania dedykowanego klastra usługi Event Hubs, zobacz Przewodnik Szybki start: tworzenie dedykowanego klastra usługi Event Hubs przy użyciu witryny Azure Portal.

Co można osiągnąć za pomocą klastra?

W przypadku klastra Event Hubs, ilość danych, które można pozyskiwać i przesyłać strumieniowo, zależy od czynników takich jak producenci, konsumenci oraz szybkość, z jaką dane są pozyskiwane i przetwarzane.

W poniższej tabeli przedstawiono wyniki testu porównawczego osiągnięte podczas testowania przy użyciu starszego dedykowanego klastra.

Kształt ładunku Odbiorniki Przepustowość ruchu przychodzącego Komunikaty przychodzące Przepustowość ruchu wychodzącego Komunikaty wyjściowe Łączna liczba jednostek Jednostki TU na cu
Pakiety 100 x 1 KB 2 400 MB/s 400 tys. komunikatów na sekundę 800 MB/s 800 tys. komunikatów na sekundę 400 jednostek TUs 100 jednostek TUs
Pakiety 10x10KB 2 666 MB/s 66,6 tys. komunikatów na sekundę 1,33 GB/s 133 tys. komunikatów na sekundę 666 jednostek TU 166 jednostek TU
Partie danych 6x32KB 1 1,05 GB/s 34 tys. komunikatów na sekundę 1,05 GB/s 34 tys. komunikatów na sekundę 1,000 jednostek TU 250 jednostek TU

W testach użyto następujących kryteriów:

  • Użyto klastra usługi Event Hubs w warstwie Dedykowanej z czterema jednostkami organizacyjnymi.
  • Centrum zdarzeń używane do pozyskiwania miało 200 partycji.
  • Pozyskane dane zostały odebrane przez dwie aplikacje odbierające dane ze wszystkich partycji.

Czy mogę skalować klaster w górę lub w dół?

Jeśli utworzysz klaster z opcją Obsługa skalowania ustawioną, możesz użyć środowiska samoobsługowego , aby skalować poziomo i pionowo zgodnie z potrzebami. Można skalować do 10 CU za pomocą skalowalnych, samoobsługowych klastrów. Samoobsługowe dedykowane klastry są oparte na nowej infrastrukturze, dzięki czemu działają lepiej niż dedykowane klastry, które nie obsługują samoobsługowego skalowania. Wydajność dedykowanych klastrów zależy od czynników, takich jak alokacja zasobów, liczba partycji i magazyn. Zalecamy określenie wymaganej liczby jednostek obliczeniowych (CU) po przeprowadzeniu testów z rzeczywistym obciążeniem.

Prześlij wniosek o pomoc techniczną w celu skalowania w poziomie lub skalowania w dedykowanym klastrze w następujących scenariuszach:

  • Potrzebujesz więcej niż 10 jednostek obliczeniowych (CU) dla dedykowanego, skalowalnego klastra (klastra utworzonego przy użyciu opcji Wsparcia skalowania).
  • Musisz skalować klaster na zewnątrz lub do wewnątrz, jeśli został utworzony bez wybrania opcji Obsługa skalowania.
  • Należy skalować na zewnątrz lub skalować do wewnątrz dedykowany klaster, który został utworzony przed wydaniem opcji samoobsługowej.

Ostrzeżenie

Po utworzeniu klastra nie będzie można go usunąć przez co najmniej cztery godziny. Naliczona zostanie opłata za co najmniej cztery godziny korzystania z klastra. Aby uzyskać więcej informacji na temat cen, zobacz Cennik usługi Event Hubs.

Czy mogę przeprowadzić migrację ze starszego klastra do skalowalnego klastra samoobsługowego?

Ze względu na różnicę w podstawowej infrastrukturze sprzętowej i programowej nie obsługujemy obecnie migracji klastrów, które nie obsługują samoobsługowego skalowania do skalowalnych klastrów dedykowanych. Jeśli chcesz użyć samoobsługowego skalowania, musisz ponownie utworzyć klaster. Aby dowiedzieć się, jak utworzyć skalowalny klaster, zobacz Tworzenie dedykowanego klastra usługi Event Hubs.

Kiedy należy skalować dedykowany klaster?

Użycie CPU jest głównym wskaźnikiem zużycia zasobów dedykowanego klastra. Gdy całkowite użycie procesora CPU zaczyna osiągać 70% (bez obserwowania nietypowych warunków, takich jak duża liczba błędów serwera lub mała liczba żądań zakończonych powodzeniem), oznacza to, że klaster przechodzi w kierunku maksymalnej pojemności. Możesz użyć tych informacji jako wskaźnika, aby rozważyć, czy chcesz skalować w górę dedykowany klaster, czy nie.

Aby monitorować użycie procesora dedykowanego klastra, wykonaj następujące kroki:

  1. Na stronie Metryki dedykowanego klastra usługi Event Hubs wybierz pozycję Dodaj metrykę.

  2. Wybierz CPU jako metrykę i użyj Maksimum jako agregacji.

    Zrzut ekranu przedstawiający stronę Metryki z metrykami procesora CPU.

  3. Wybierz Dodaj filtr i dodaj filtr dla właściwości typu Role. Użyj operatora równości i wybierz wszystkie wartości (zaplecze i brama) z listy rozwijanej.

    Zrzut ekranu przedstawiający stronę Metryki z metrykami i rolami użycia procesora CPU.

    Następnie możesz monitorować tę metryę, aby określić, kiedy należy skalować dedykowany klaster. Możesz również skonfigurować alerty dotyczące tej metryki, aby otrzymywać powiadomienia, gdy użycie procesora CPU osiągnie ustawione progi.

Jak odzyskiwanie po awarii geograficznej działa z moim klastrem?

Przestrzeń nazw można sparować geograficznie w ramach klastra warstwy dedykowanej z inną przestrzenią nazw w ramach klastra warstwy dedykowanej. Nie zachęcamy do parowania przestrzeni nazw warstwy Dedykowanej z przestrzenią nazw w ofercie Standard, gdyż limit przepływu danych jest niekompatybilny i prowadzi do błędów.

Czy mogę przeprowadzić migrację przestrzeni nazw w warstwie Standardowa lub Premium do klastra warstwy dedykowanej?

Obecnie nie obsługujemy zautomatyzowanego procesu migracji danych usługi Event Hubs z przestrzeni nazw w warstwie Standardowa lub Premium do przestrzeni dedykowanej.

Dlaczego starszy dedykowany klaster o strefowej nadmiarowości ma co najmniej osiem jednostek CU?

Aby zapewnić nadmiarowość strefy dla oferty dedykowanej, wszystkie zasoby obliczeniowe muszą mieć trzy repliki w trzech centrach danych w tym samym regionie. To minimalne wymaganie wspiera redundancję strefy (co pozwala na dalsze działanie usługi, gdy dwie strefy lub centra danych są niedostępne) i skutkuje pojemnością obliczeniową równoważną ośmiu jednostkom CU.

Nie można zmienić tego limitu przydziału. Jest to ograniczenie bieżącej architektury z dedykowaną warstwą.

Partycje

Ile partycji potrzebuję?

Partycja jest mechanizmem organizacji danych, który umożliwia równoległe publikowanie i konsumowanie. Chociaż obsługuje przetwarzanie równoległe i skalowanie, łączna pojemność pozostaje ograniczona przez alokację skalowania przestrzeni nazw. Równoważenie jednostek skalowania (jednostek przepływności dla warstwy standardowej, jednostek przetwarzania dla warstwy premium lub jednostek pojemności dla dedykowanej warstwy) i partycji w celu osiągnięcia optymalnej skali.

Zacznij od profilu obciążenia: średni rozmiar ładunku, zdarzenia na sekundę i wrażliwość na spadki przepływności lub skoki opóźnień. Użyj poniższej przepływności na partycję jako punktu początkowego, a następnie zweryfikuj je przy użyciu testów obciążeniowych:

  • Warstwa Standardowa: ruch przychodzący ok. 1 MB/s i ruch wychodzący ~2 MB/s na partycję.
  • Warstwy Premium i Dedykowane: ~1–2 MB/s ruchu przychodzącego i ok. 2–5 MB/s na partycję.

Szacuj liczbę partycji, dzieląc oczekiwany ruch przychodzący i wychodzący przez odpowiednie stawki na partycję i wybierając większą wartość. Jeśli zaobserwowana przepływność lub opóźnienie nie spełnia oczekiwań, zwiększ partycje (tylko warstwy Premium i Dedykowane) i ponownie przetestuj.

Partycje wyznaczają również pułap równoległości dla konsumentów. Sposób działania tego limitu zależy od typu konsumenta:

  • Konsumenty epokowe (ekskluzywne) — używani przez EventProcessorClient (.NET, Java) i EventHubConsumerClient (Python, JavaScript), które są zalecanym wzorcem dla produkcyjnych obciążeń AMQP. Tylko jeden użytkownik epoki może być właścicielem danej partycji w grupie odbiorców naraz. Jeśli wdrażasz więcej wystąpień procesora niż partycje, dodatkowe wystąpienia nie są przypisane do żadnych partycji i pozostają bezczynne, dopóki istniejący właściciel nie zwolni którejś z nich. Jeśli nowy konsument epoki łączy się z wyższym poziomem właściciela, usługa rozłącza bieżącego właściciela, powodując błąd ConsumerDisconnected, a nowy konsument przejmuje kontrolę.
  • Konsumenci nieepokowi — do 5 odbiorników nieepokowych może jednocześnie odczytywać tę samą partycję w grupie konsumentów. Każdy odbiornik widzi te same zdarzenia (fan-out), więc ten tryb nie zwiększa przepływności przetwarzania na partycję. Podłączenie konsumenta epoki do partycji rozłącza wszystkich konsumentów innych niż epoka w tej partycji.
  • Konsumenci platformy Kafka — konsumenci platformy Kafka używają protokołu koordynacji grup (group.id) zamiast epok amQP, ale model własności partycji jest równoważny: każda partycja jest przypisana do dokładnie jednego członka odbiorcy w ramach grupy odbiorców naraz. Kiedy nowy członek dołącza lub istniejący członek opuszcza grupę, grupa ponownie równoważy i rozdziela przypisania partycji. Jeśli jest więcej konsumentów niż partycji, nadmiarowi konsumenci nie otrzymują żadnych przydziałów i pozostają bezczynni, dopóki w przyszłości ponowna równowaga nie zwolni partycji. Aby zmniejszyć niepotrzebne ponowne równoważenie wynikające z przejściowych rozłączeń, ustaw unikatowy group.instance.id dla wystąpienia konsumenta (członkostwo statyczne).

W praktyce liczba partycji jest równa maksymalnej liczbie odbiorców równoległych na grupę odbiorców niezależnie od tego, czy używasz użytkowników epoki AMQP, czy odbiorców platformy Kafka. Uwzględnij tę wartość w liczbie partycji podczas planowania skalowania horyzontalnego.

Jeśli aplikacja ma koligację z określoną partycją, zwiększenie liczby partycji nie jest korzystne. Aby uzyskać więcej informacji, zobacz dostępność i spójność.

Czy mogę zwiększyć liczbę partycji w warstwie Standardowej usługi Event Hubs?

Nie, nie jest to możliwe, ponieważ partycje są niezmienne w warstwie Standard. Dynamiczne dodawanie partycji jest dostępne tylko w warstwach Premium i dedykowanych usługi Event Hubs.

Cennik

Gdzie można znaleźć więcej informacji o cenach?

Aby uzyskać pełne informacje o cenach usługi Event Hubs, zobacz szczegóły cennika usługi Event Hubs.

Czy jest naliczana opłata za przechowywanie zdarzeń usługi Event Hubs przez ponad 24 godziny?

Warstwa Standardowa usługi Event Hubs zezwala na okres przechowywania komunikatów dłuższy niż 24 godziny przez maksymalnie siedem dni. Jeśli łączny rozmiar przechowywanych zdarzeń przekracza limit magazynu dla liczby wybranych jednostek przepływności (84 GB na jednostkę przepływności), rozmiar przekraczający limit jest naliczany według opublikowanej stawki magazynu obiektów blob platformy Azure. Limit magazynowania w każdej jednostce przepływności obejmuje wszystkie koszty magazynowania dla okresów przechowywania wynoszących 24 godziny, nawet jeśli jednostka przepływności jest używana do maksymalnego limitu przydziału ruchu przychodzącego.

Jak jest obliczany i naliczany rozmiar magazynu usługi Event Hubs?

Łączny rozmiar wszystkich przechowywanych zdarzeń, łącznie z wewnętrznym nadmiarem nagłówków zdarzeń lub struktur przechowywania na dysku we wszystkich centrach zdarzeń, jest monitorowany w ciągu całego dnia. Na koniec dnia wyliczana jest szczytowa wielkość magazynu. Dzienny limit magazynu jest wyliczany na podstawie minimalnej liczby jednostek przepływności, które zostały wybrane w ciągu dnia (każda jednostka przepływności ma limit 84 GB). Jeśli łączny rozmiar przekracza obliczony dzienny limit miejsca do magazynowania, nadwyżka magazynu jest naliczana przy użyciu stawek magazynu obiektów blob platformy Azure (z szybkością magazynowania lokalnie nadmiarowego).

Jak obliczane są zdarzenia wejściowe?

Każde zdarzenie wysyłane do huba zdarzeń jest liczone jako wiadomość rozliczana. Zdarzenie wejściowe jest definiowane jako jednostka danych, która jest mniejsza lub równa 64 KB. Każde zdarzenie o rozmiarze mniejszym lub równym 64 KB jest uważane za jedno zdarzenie rozliczane. Jeśli zdarzenie jest większe niż 64 KB, liczba rozliczanych zdarzeń jest obliczana zgodnie z rozmiarem zdarzenia w wielokrotnościach 64 KB. Na przykład zdarzenie 8 KB wysyłane do centrum zdarzeń jest rozliczane jako jedno zdarzenie, ale komunikat 96 KB wysłany do centrum zdarzeń jest rozliczany jako dwa zdarzenia.

Zdarzenia odbierane z koncentratora zdarzeń oraz operacje zarządzania i wywoławcze, takie jak punkty kontrolne, nie są liczone jako rozliczalne zdarzenia ruchu przychodzącego, ale są uwzględniane w limicie jednostek przepustowości.

Czy opłaty za połączenia obsługiwane przez brokera mają zastosowanie do usługi Event Hubs?

Opłaty za połączenia mają zastosowanie tylko wtedy, gdy jest używany protokół AMQP. Nie ma opłat za połączenia związane z przesyłaniem zdarzeń przez protokół HTTP niezależnie od liczby systemów lub urządzeń wysyłających. Jeśli planujesz używać protokołu AMQP (na przykład w celu uzyskania bardziej wydajnego przesyłania strumieniowego zdarzeń lub włączenia dwukierunkowej komunikacji w scenariuszach poleceń i kontroli IoT), zobacz stronę z informacjami o cenach usługi Event Hubs, aby uzyskać szczegółowe informacje o liczbie połączeń zawartych w każdej warstwie usługi.

W jaki sposób naliczane są opłaty za funkcję przechwytywania usługi Event Hubs?

Przechwytywanie jest włączone, gdy w dowolnym centrum zdarzeń w przestrzeni nazw jest włączona opcja Przechwytywanie. Usługa Event Hubs Capture jest rozliczana co miesiąc za zakupioną jednostkę przepływności. W miarę zwiększania lub zmniejszania liczby jednostek przepływności rozliczenia usługi Event Hubs Capture odzwierciedlają te zmiany w przyrostach całkowitych godzin. Aby uzyskać więcej informacji na temat rozliczeń usługi Event Hubs Capture, zobacz Informacje o cenach usługi Event Hubs.

Czy są naliczane opłaty za wybrane konto magazynu w przypadku przechwytywania usługi Event Hubs?

Przechwytywanie używa konta magazynowego, które podasz, gdy zostanie włączone w centrum zdarzeń. Ponieważ jest to twoje konto magazynu, wszelkie zmiany tej konfiguracji są rozliczane w ramach subskrypcji platformy Azure.

Limity

Czy istnieją przydziały skojarzone z usługą Event Hubs?

Aby uzyskać listę wszystkich przydziałów usługi Event Hubs, zobacz limity przydziału.

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 usługę Event Hubs i ich sugerowane akcje?

Aby uzyskać listę możliwych wyjątków usługi Event Hubs, zobacz Omówienie wyjątków.

Dzienniki diagnostyczne

Usługa Event Hubs obsługuje dwa typy dzienników diagnostycznych — dzienniki błędów typu Capture i dzienniki operacyjne — oba reprezentowane w formacie JSON, które można włączyć za pośrednictwem Azure Portal.

Pomoc techniczna i umowa SLA

Pomoc techniczna dla usługi Event Hubs jest dostępna za pośrednictwem strony pytań i odpowiedzi firmy Microsoft dla usługi Azure Service Bus. Pomoc dotycząca rozliczeń i subskrypcji jest świadczona bezpłatnie.

Aby dowiedzieć się więcej o naszej umowie SLA, zobacz stronę Umowy dotyczące poziomu usług.

Azure Stack Hub

Jak mogę określić określoną wersję zestawu SDK usługi Azure Storage w przypadku korzystania z usługi Azure Blob Storage jako magazynu punktów kontrolnych?

Jeśli uruchomisz ten kod na platformie Azure Stack Hub, wystąpią błędy wykonania, chyba że docelowo użyjesz określonej wersji interfejsu API Storage. Dzieje się tak, ponieważ zestaw SDK usługi Event Hubs korzysta z najnowszego dostępnego interfejsu API usługi Azure Storage dostępnego na platformie Azure, który może nie być dostępny na platformie Azure Stack Hub. Usługa Azure Stack Hub może obsługiwać inną wersję zestawu SDK obiektów blob usługi Storage niż te, które są zwykle dostępne na platformie Azure. Jeśli używasz usługi Azure Blob Storage jako magazynu punktów kontrolnych, sprawdź obsługiwaną wersję interfejsu API usługi Azure Storage dla swojego środowiska Azure Stack Hub i upewnij się, że w swoim kodzie korzystasz z tej wersji.

Jeśli na przykład korzystasz z usługi Azure Stack Hub w wersji 2005, najwyższa dostępna wersja usługi Storage to wersja 2019-02-02. Domyślnie biblioteka klienta zestawu SDK usługi Event Hubs używa najwyższej dostępnej wersji na platformie Azure (2019-07-07 w momencie wydania zestawu SDK). W tym przypadku, oprócz wykonania kroków opisanych w tej sekcji, należy również dodać kod zgodny z wersją 2019-02-02 interfejsu API usługi Storage. Aby zapoznać się z przykładem sposobu kierowania określonej wersji interfejsu API usługi Storage, zobacz następujące przykłady dla języków C#, Java, Python i JavaScript/TypeScript.

Aby z kodu wybrać konkretną wersję interfejsu API usługi Storage, zapoznaj się z poniższymi przykładami w witrynie GitHub:

Następne kroki

Następujące linki pozwalają dowiedzieć się więcej na temat usługi Event Hubs: