Szybki start: przesyłanie strumieniowe danych za pomocą usług Azure Event Hubs i Apache Kafka
W tym przewodniku Szybki start pokazano, jak przesyłać strumieniowo dane do i z usługi Azure Event Hubs przy użyciu protokołu Apache Kafka. Nie zmienisz żadnego kodu w przykładowych aplikacjach producenta ani konsumentów platformy Kafka. Wystarczy zaktualizować konfiguracje używane przez klientów do wskazywania przestrzeni nazw usługi Event Hubs, która uwidacznia punkt końcowy platformy Kafka. Nie kompilujesz również klastra platformy Kafka i nie używasz go samodzielnie. Zamiast tego należy użyć przestrzeni nazw usługi Event Hubs z punktem końcowym platformy Kafka.
Uwaga
Ten przykład jest dostępny w witrynie GitHub
Wymagania wstępne
Aby ukończyć ten przewodnik Szybki start, upewnij się, że dysponujesz następującymi elementami:
- Zapoznaj się z artykułem Usługa Event Hubs dla platformy Apache Kafka.
- Subskrypcja Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
- Utwórz maszynę wirtualną z systemem Windows i zainstaluj następujące składniki:
- Zestaw Java Development Kit (JDK) 1.7+
- Pobierz i zainstaluj archiwum binarne Maven.
- Usługa Git
Tworzenie przestrzeni nazw usługi Azure Event Hubs
Podczas tworzenia przestrzeni nazw usługi Event Hubs punkt końcowy platformy Kafka dla przestrzeni nazw jest automatycznie włączony. Zdarzenia można przesyłać strumieniowo z aplikacji korzystających z protokołu Kafka do centrów zdarzeń. Postępuj zgodnie z instrukcjami krok po kroku w temacie Tworzenie centrum zdarzeń przy użyciu witryny Azure Portal , aby utworzyć przestrzeń nazw usługi Event Hubs. Jeśli używasz dedykowanego klastra, zobacz Tworzenie przestrzeni nazw i centrum zdarzeń w dedykowanym klastrze.
Uwaga
Usługa Event Hubs dla platformy Kafka nie jest obsługiwana w warstwie Podstawowa.
Wysyłanie i odbieranie komunikatów przy użyciu platformy Kafka w usłudze Event Hubs
Włącz tożsamość zarządzaną przypisaną przez system dla maszyny wirtualnej. Aby uzyskać więcej informacji na temat konfigurowania tożsamości zarządzanej na maszynie wirtualnej, zobacz Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej przy użyciu witryny Azure Portal. Tożsamości zarządzane dla zasobów platformy Azure udostępniają usługom platformy Azure automatycznie zarządzaną tożsamość w usłudze Microsoft Entra ID. Za pomocą tej tożsamości można uwierzytelnić się w dowolnej usłudze obsługującej uwierzytelnianie usługi Microsoft Entra bez konieczności przechowywania poświadczeń w kodzie.
Korzystając ze strony Kontrola dostępu utworzonej przestrzeni nazw usługi Event Hubs, przypisz rolę właściciela danych usługi Azure Event Hubs do tożsamości zarządzanej maszyny wirtualnej. Usługa Azure Event Hubs obsługuje używanie identyfikatora Entra firmy Microsoft do autoryzowania żądań do zasobów usługi Event Hubs. Za pomocą identyfikatora Entra firmy Microsoft możesz użyć kontroli dostępu na podstawie ról (RBAC) platformy Azure, aby udzielić uprawnień jednostce zabezpieczeń, która może być użytkownikiem lub jednostką usługi aplikacji.
W witrynie Azure Portal przejdź do przestrzeni nazw usługi Event Hubs. Przejdź do obszaru "Kontrola dostępu (IAM)" w obszarze nawigacji po lewej stronie.
Wybierz pozycję + Dodaj i wybierz pozycję
Add role assignment
.Na karcie Rola wybierz pozycję Właściciel danych usługi Azure Event Hubs i wybierz przycisk Dalej .
Na karcie Członkowie wybierz tożsamość zarządzaną w sekcji Przypisz dostęp do.
Wybierz link +Wybierz członków.
Na stronie Wybieranie tożsamości zarządzanych wykonaj następujące kroki:
Wybierz subskrypcję platformy Azure, która ma maszynę wirtualną.
W obszarze Tożsamość zarządzana wybierz pozycję Maszyna wirtualna
Wybierz tożsamość zarządzaną maszyny wirtualnej.
Wybierz pozycję Wybierz w dolnej części strony.
Wybierz pozycję Przejrzyj + przypisz.
Uruchom ponownie maszynę wirtualną i zaloguj się z powrotem do maszyny wirtualnej, dla której skonfigurowano tożsamość zarządzaną.
Sklonuj repozytorium usługi Azure Event Hubs dla platformy Kafka.
Przejdź do
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Przejdź do
src/main/resources/
folderu i otwórz plikconsumer.config
. Zastąpnamespacename
ciąg nazwą przestrzeni nazw usługi Event Hubs.bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required; sasl.login.callback.handler.class=CustomAuthenticateCallbackHandler;
Uwaga
Wszystkie przykłady protokołu OAuth dla usługi Event Hubs dla platformy Kafka można znaleźć tutaj.
Wróć do folderu Consumer , w którym znajduje się plik pom.xml, i uruchom kod odbiorcy i przetwarza zdarzenia z centrum zdarzeń przy użyciu klientów platformy Kafka:
mvn clean package mvn exec:java -Dexec.mainClass="TestConsumer"
Uruchom kolejne okno wiersza polecenia i przejdź do
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Przejdź do
src/main/resources/
folderu i otwórz plikproducer.config
. Zastąpmynamespace
ciąg nazwą przestrzeni nazw usługi Event Hubs.Wróć do folderu Producent , w którym
pom.xml
znajduje się plik i uruchom kod producenta i uruchom zdarzenia strumieniowe do usługi Event Hubs:mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
W oknie producenta powinny zostać wyświetlone komunikaty dotyczące zdarzeń wysyłanych. Teraz sprawdź okno aplikacji odbiorcy, aby wyświetlić komunikaty odbierane z centrum zdarzeń.
Weryfikacja schematu dla platformy Kafka z rejestrem schematów
Za pomocą usługi Azure Schema Registry można przeprowadzić walidację schematu podczas przesyłania strumieniowego danych za pomocą aplikacji platformy Kafka przy użyciu usługi Event Hubs. Rejestr schematów platformy Azure usługi Event Hubs udostępnia scentralizowane repozytorium do zarządzania schematami i można bezproblemowo połączyć nowe lub istniejące aplikacje platformy Kafka z rejestrem schematów.
Aby dowiedzieć się więcej, zobacz Weryfikowanie schematów dla aplikacji platformy Apache Kafka przy użyciu usługi Avro.
Następne kroki
W tym artykule przedstawiono sposób przesyłania strumieniowego do usługi Event Hubs bez zmieniania klientów protokołu ani uruchamiania własnych klastrów. Aby dowiedzieć się więcej, zobacz Przewodnik dla deweloperów platformy Apache Kafka dotyczący usługi Azure Event Hubs.