Share via


Probleemoplossingsgids voor Apache Kafka voor Event Hubs

Dit artikel bevat tips voor het oplossen van problemen die u kunt tegenkomen bij het gebruik van Event Hubs voor Apache Kafka.

Uitzondering server bezet

Mogelijk ontvangt u de uitzondering Server bezet vanwege Kafka-beperking. Met AMQP-clients retourneert Event Hubs onmiddellijk een server bezet uitzondering bij servicebeperking. Dit komt overeen met het bericht 'Probeer het later opnieuw'. In Kafka worden berichten vertraagd voordat ze worden voltooid. De vertragingslengte wordt geretourneerd in milliseconden, zoals throttle_time_ms in het antwoord voor produceren/ophalen. In de meeste gevallen worden deze vertraagde aanvragen niet geregistreerd als server bezet-uitzonderingen op Event Hubs-dashboards. In plaats daarvan moet de waarde van throttle_time_ms het antwoord worden gebruikt als een indicator dat de doorvoer het ingerichte quotum heeft overschreden.

Als het verkeer overmatig is, heeft de service het volgende gedrag:

  • Als de vertraging van de productieaanvraag de time-out van de aanvraag overschrijdt (request.timeout.ms), retourneert Event Hubs de foutcode beleidsschending .
  • Als de vertraging van het ophalen van de aanvraag de time-out van de aanvraag overschrijdt, registreert Event Hubs de aanvraag als beperkt en reageert deze met een lege set records en zonder foutcode.

Toegewezen clusters hebben geen beperkingsmechanismen. U kunt alle clusterresources gebruiken.

Geen records ontvangen

Mogelijk ziet u dat consumenten geen records krijgen en voortdurend opnieuw verdelen. In dit scenario krijgen consumenten geen records en worden ze voortdurend opnieuw in balans gebracht. Er is geen uitzondering of fout wanneer dit gebeurt, maar de Kafka-logboeken laten zien dat de gebruikers vastzitten bij het opnieuw deelnemen aan de groep en het toewijzen van partities. Er zijn enkele mogelijke oorzaken:

  • Zorg ervoor dat uw request.timeout.ms ten minste de aanbevolen waarde van 60000 is en dat uw session.timeout.ms ten minste de aanbevolen waarde van 30000 is. Als deze instellingen te laag zijn, kan dit time-outs van consumenten veroorzaken, wat vervolgens herverdelingen veroorzaakt (wat vervolgens meer time-outs veroorzaakt, waardoor meer herverdeling ontstaat, enzovoort)
  • Als uw configuratie overeenkomt met deze aanbevolen waarden en u ziet nog steeds een constante herverdeling, kunt u een probleem melden (zorg ervoor dat u de volledige configuratie in het probleem opneemt, zodat we kunnen helpen bij het opsporen van fouten)).

Versieprobleem met compressie/berichtindeling

Kafka ondersteunt compressie en Event Hubs voor Kafka momenteel niet. Fouten die een berichtindelingsversie vermelden (bijvoorbeeld The message format version on the broker does not support the request.) worden veroorzaakt wanneer een client gecomprimeerde Kafka-berichten naar onze brokers probeert te verzenden.

Als gecomprimeerde gegevens nodig zijn, is het comprimeren van uw gegevens voordat deze naar de brokers worden verzonden en het decomprimeren na ontvangst een geldige tijdelijke oplossing. De berichttekst is slechts een bytematrix voor de service, dus compressie/decompressie aan de clientzijde veroorzaakt geen problemen.

UnknownServerException

Mogelijk ontvangt u een UnknownServerException van Kafka-clientbibliotheken die vergelijkbaar zijn met het volgende voorbeeld:

org.apache.kafka.common.errors.UnknownServerException: The server experienced an unexpected error when processing the request

Open een ticket bij Microsoft-ondersteuning. Logboekregistratie op foutopsporingsniveau en uitzonderingstijdstempels in UTC zijn handig bij het opsporen van het probleem.

Overige problemen

Controleer de volgende items als u problemen ziet bij het gebruik van Kafka in Event Hubs.

  • Firewall blokkeert verkeer : zorg ervoor dat poort 9093 niet wordt geblokkeerd door uw firewall.
  • TopicAuthorizationException - De meest voorkomende oorzaken van deze uitzondering zijn:
    • Een typefout in de connection string in uw configuratiebestand, of
    • U probeert Event Hubs voor Kafka te gebruiken in een basic-laagnaamruimte. De functie Event Hubs voor Kafka wordt niet ondersteund in de Basic-laag.
  • Kafka-versie komt niet overeen : Event Hubs voor Kafka Ecosystems ondersteunt Kafka-versies 1.0 en hoger. Sommige toepassingen die Kafka versie 0.10 en hoger gebruiken, kunnen af en toe werken vanwege de compatibiliteit met eerdere versies van het Kafka-protocol, maar we raden u ten zeerste af om oude API-versies te gebruiken. Kafka versies 0.9 en eerder bieden geen ondersteuning voor de vereiste SASL-protocollen en kunnen geen verbinding maken met Event Hubs.
  • Vreemde coderingen voor AMQP-headers bij gebruik met Kafka : bij het verzenden van gebeurtenissen naar een Event Hub via AMQP worden alle AMQP-payloadheaders geserialiseerd in AMQP-codering. Kafka-gebruikers deserialiseren de headers van AMQP niet. Als u headerwaarden wilt lezen, moet u de AMQP-headers handmatig decoderen. U kunt ook het gebruik van AMQP-headers vermijden als u weet dat u deze gebruikt via het Kafka-protocol. Zie dit GitHub-probleem voor meer informatie.
  • SASL-verificatie : het kan moeilijker zijn om uw framework samen te laten werken met het SASL-verificatieprotocol dat is vereist voor Event Hubs. Kijk of u problemen met de configuratie kunt oplossen met behulp van de resources van uw framework voor SASL-verificatie.

Limieten

Apache Kafka vs. Event Hubs Kafka. De Kafka-interface van Azure Event Hubs heeft voor het grootste deel dezelfde standaardwaarden, eigenschappen, foutcodes en algemeen gedrag als Apache Kafka. De gevallen waarin deze twee expliciet verschillen (of waarbij Event Hubs een limiet oplegt die niet door Kafka wordt opgelegd), worden hieronder vermeld:

  • De maximale lengte van de group.id eigenschap is 256 tekens
  • De maximale grootte van offset.metadata.max.bytes is 1024 bytes
  • Verschuiving doorvoeren wordt beperkt tot 4 aanroepen per seconde per partitie met een maximale interne logboekgrootte van 1 MB

Volgende stappen

Zie de volgende artikelen voor meer informatie over Event Hubs en Event Hubs voor Kafka: