Een Event Hub maken met behulp van de Azure CLI

Voltooid

Uw team besluit om de mogelijkheden van Azure Event Hubs te gebruiken voor het beheren en verwerken van de toenemende transactievolumes die via uw systeem binnenkomen.

Een Event Hub is een Azure-resource, dus uw eerste stap is het maken van een nieuwe Event Hub in Azure en het configureren om te voldoen aan de specifieke vereisten van uw apps.

Wat is Azure Event Hubs?

Azure Event Hubs is een cloudservice voor gebeurtenisverwerking die miljoenen gebeurtenissen per seconde kan ontvangen en verwerken. Event Hubs fungeert als voordeur voor een gebeurtenispijplijn, ontvangt binnenkomende gegevens en slaat deze op totdat de verwerkingsbronnen beschikbaar zijn.

Een entiteit die gegevens naar uw Event Hub verzendt, wordt een uitgevergenoemd en een entiteit die gegevens uit een Event Hub leest, wordt een consumer-of een -abonneegenoemd. Uw Event Hub bevindt zich tussen de uitgever en abonnee om de productie (van de uitgever) en het verbruik (naar een abonnee) van een gebeurtenisgegevensstroom te verdelen. Deze ontkoppeling helpt bij het beheren van scenario's waarbij de snelheid van de gebeurtenisproductie aanzienlijk hoger is dan het verbruik. In de volgende afbeelding ziet u de rol van een Event Hub.

Een afbeelding van een Azure Event Hub tussen vier uitgevers en twee abonnees. De Event Hub ontvangt meerdere gebeurtenissen van de uitgevers, serialiseert de gebeurtenissen in gegevensstromen en maakt de gegevensstromen beschikbaar voor abonnees.

Gebeurtenissen

Een gebeurtenis is een klein informatiepakket (een datagram) dat een melding bevat. Gebeurtenissen kunnen afzonderlijk of in batches worden gepubliceerd, maar één publicatie (afzonderlijk of batch) mag niet groter zijn dan 1 MB.

Uitgevers en abonnees

Gebeurtenisuitgevers zijn apps of apparaten die gebeurtenissen kunnen verzenden met HTTPS, Advanced Message Queuing Protocol (AMQP) 1.0 of Apache Kafka.

  • Voor uitgevers die regelmatig gegevens verzenden, beschikt AMQP- over betere prestaties. Er is echter een hogere overhead voor de eerste sessie, omdat eerst een persistente bidirectionele socket en transportlaag-beveiliging (TLS) of SSL/TLS moet worden ingesteld.
  • Voor meer onregelmatige publicatie is HTTPS- de betere optie. Hoewel HTTPS meer overhead vereist voor elke aanvraag, is er geen overhead voor sessie-initialisatie.
  • Event Hubs biedt een eindpunt dat compatibel is met de Apache Kafka producer- en consumer-API's die kunnen worden gebruikt door de meeste bestaande Apache Kafka-clienttoepassingen als alternatief voor het uitvoeren van uw eigen Apache Kafka-cluster. Event Hubs ondersteunt clients voor producenten- en consumenten-API's van Apache Kafka op versie 1.0 en hoger. Zie Event Hubs voor Apache Kafkavoor meer informatie.

Gebeurtenisabonnees zijn apps die gebruikmaken van een van de twee ondersteunde programmatische methoden voor het ontvangen en verwerken van gebeurtenissen van een Event Hub.

  • EventHubReceiver : een eenvoudige methode die beperkte beheeropties biedt.
  • EventProcessorHost : een efficiënte methode die we verderop in deze module gebruiken.

Consumentengroepen

Een Event Hub consumentengroep vertegenwoordigt een specifieke weergave van een Event Hub-gegevensstroom. Wanneer u afzonderlijke consumentengroepen gebruikt, kunnen meerdere abonnee-apps een gebeurtenisgegevensstroom onafhankelijk verwerken en zonder dat dit van invloed is op andere apps. Het gebruik van veel consumentengroepen is echter geen vereiste en voor veel apps is de enkele standaardconsumentgroep voldoende.

Prijzen

Er zijn vier prijscategorieën voor Azure Event Hubs: Basic, Standard, Premium en Dedicated. De lagen verschillen in termen van ondersteunde verbindingen, het aantal beschikbare consumentengroepen en de doorvoer. Wanneer u Azure CLI gebruikt om een Event Hubs-naamruimte te maken en u geen prijscategorie opgeeft, wordt de standaardinstelling Standard- (20 consumentengroepen, 1000 brokered verbindingen) toegewezen. Zie Azure Event Hubs - Prijzenvoor de belangrijkste verschillen tussen deze lagen.

Een Event Hub maken en configureren

Er zijn twee hoofdstappen voor het maken van een nieuwe Event Hub. De eerste stap is het definiëren van de Event Hubs naamruimte. De tweede stap is het maken van een Event Hub in die naamruimte.

Een Event Hubs-naamruimte definiëren

Een Event Hubs-naamruimte is een container voor het beheren van een of meer Event Hubs. Het maken van een Event Hubs-naamruimte omvat doorgaans de volgende configuratie:

Instellingen op naamruimteniveau definiëren

Naamruimtecapaciteit (geconfigureerd met behulp van doorvoereenheden voor de standard-laag), prijscategorie en metrische prestatiegegevens worden gedefinieerd op naamruimteniveau. Deze instellingen zijn van toepassing op alle Event Hubs binnen die naamruimte. Als u deze instellingen niet definieert, wordt een standaardwaarde gebruikt: 1 voor capaciteit en Standard voor prijscategorie.

Houd rekening met de volgende aspecten:

  • U moet uw configuratie afwegen tegen de verwachtingen van uw Azure-budget.

  • U kunt overwegen om verschillende Event Hubs te configureren voor verschillende doorvoervereisten. Als u bijvoorbeeld een app voor verkoopgegevens hebt en u van plan bent om twee Event Hubs te gebruiken, is het zinvol om een afzonderlijke naamruimte voor elke hub te gebruiken.

    U configureert één naamruimte voor het verzamelen van hoge doorvoer van realtime verkoopgegevens en één naamruimte voor onregelmatige verzameling van gebeurtenislogboeken. Op deze manier hoeft u alleen een hoge doorvoercapaciteit te configureren (en te betalen voor) op de realtime verkoopgegevenshub.

    1. Selecteer een unieke naam voor de naamruimte. De naamruimte is toegankelijk via deze URL: naamruimte.servicebus.windows.net

    2. Definieer de volgende optionele eigenschappen:

      • Maak deze naamruimtezone redundant. Zoneredundantie repliceert gegevens in afzonderlijke datacenters, die onafhankelijke energie-, netwerk- en koelinfrastructuren hebben.

      • Schakel het automatisch omhoog schalen van doorvoereenheden (standard-laag) in. Een autoinflate-functie biedt een optie voor automatische schaalvergroting door het aantal doorvoereenheden tot een maximumwaarde te verhogen. Deze optie is handig om bandbreedtebeperking te voorkomen in situaties waarin de binnenkomende of uitgaande gegevenssnelheden het momenteel ingestelde aantal doorvoereenheden overschrijden.

Azure CLI-opdrachten voor het maken van een Event Hubs-naamruimte

Als u een nieuwe Event Hubs-naamruimte wilt maken, gebruikt u az eventhubs namespace opdrachten. Hier volgt een korte beschrijving van de opdrachten die we in de oefening gebruiken.

Bevelen Beschrijving
create Hiermee maakt u een Event Hubs-naamruimte.
authorization-rule Alle Event Hubs binnen dezelfde naamruimte delen algemene verbindingsreferenties. U hebt deze referenties nodig wanneer u apps configureert voor het verzenden en ontvangen van berichten met behulp van de Event Hub. Met deze opdracht wordt de verbindingsreeks voor uw Event Hubs-naamruimte geretourneerd.

Een nieuwe Event Hub configureren

Nadat u een Event Hubs-naamruimte hebt gemaakt, kunt u een Event Hub maken. Wanneer u een Event Hub maakt, zijn er verschillende verplichte parameters.

De volgende parameters zijn vereist om een Event Hub te maken:

  • Event Hub-naam : een Event Hub-naam die uniek is binnen uw abonnement en:
    • Ligt tussen de 1 en 50 tekens.
    • Bevat alleen letters, cijfers, punten, afbreekstreepjes en onderstrepingstekens.
    • Begint en eindigt met een letter of cijfer.
  • Aantal partities: het aantal partities dat is vereist in een Event Hub (tussen 2 en 32 voor de standard-laag). Het aantal partities moet rechtstreeks zijn gerelateerd aan het verwachte aantal gelijktijdige consumenten en kan niet worden gewijzigd nadat de hub is gemaakt. De partitie scheidt de berichtenstroom, zodat consumenten- of ontvanger-apps alleen een specifieke subset van de gegevensstroom hoeven te lezen. Als deze niet is gedefinieerd, wordt de waarde standaard ingesteld op 4.
  • bewaarperiode voor berichten: het aantal dagen (1 tot en met 7 voor de standard-laag) dat berichten beschikbaar blijven als de gegevensstroom om welke reden dan ook opnieuw moet worden afgespeeld. Als deze waarde niet is gedefinieerd, wordt deze waarde standaard ingesteld op 7.

U kunt desgewenst ook een Event Hub configureren om gegevens te streamen naar Azure Blob Storage of een Azure Data Lake Storage.

Azure CLI-opdrachten voor het maken van een Event Hub

Als u een nieuwe Event Hub wilt maken met de Azure CLI, voert u de az eventhubs eventhub opdrachtenset uit. Hier volgt een korte beschrijving van de opdrachten die we in de oefening gebruiken.

Bevelen Beschrijving
create Hiermee maakt u de Event Hub in een opgegeven naamruimte.
show Geeft de details van uw Event Hub weer.

Notitie

Zie Quota en limieten van Azure Event Hubsvoor quota en limieten voor verschillende lagen van Event Hubs.

Samenvatting

Als u Azure Event Hubs wilt implementeren, moet u een Event Hubs-naamruimte configureren en vervolgens de Event Hub zelf configureren. In de volgende les doorloopt u de gedetailleerde stappen voor het maken van een nieuwe naamruimte en Event Hub.