Aanbevolen configuraties voor Apache Kafka-clients
Hier volgen de aanbevolen configuraties voor het gebruik van Azure Event Hubs van Apache Kafka-clienttoepassingen.
Eigenschappen van java-clientconfiguratie
Producent- en consumentenconfiguraties
Eigenschap | Aanbevolen waarden | Toegestaan bereik | Notities |
---|---|---|---|
metadata.max.age.ms |
180000 (bij benadering) | < 240000 | Kan worden verlaagd om wijzigingen in metagegevens sneller op te pikken. |
connections.max.idle.ms |
180000 | < 240000 | Azure sluit binnenkomende TCP-inactiviteit > 240.000 ms, wat kan leiden tot het verzenden van onbestelbare verbindingen (weergegeven als verlopen batches vanwege een time-out voor verzenden). |
Alleen producentconfiguraties
Producentconfiguraties vindt u hier.
Eigenschap | Aanbevolen waarden | Toegestaan bereik | Notities |
---|---|---|---|
max.request.size |
1000000 | < 1046528 | De service sluit verbindingen als aanvragen groter dan 1.046.528 bytes worden verzonden. Deze waarde moet worden gewijzigd en veroorzaakt problemen in productiescenario's met hoge doorvoer. |
retries |
> 0 | Mogelijk is het verhogen van delivery.timeout.ms waarde vereist, zie de documentatie. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Event Hubs wordt intern standaard ingesteld op minimaal 20.000 ms. Hoewel aanvragen met lagere time-outwaarden worden geaccepteerd, wordt clientgedrag niet gegarandeerd. 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 leiden tot time-outs voor consumenten, die vervolgens herverdelingen veroorzaken (die vervolgens meer time-outs veroorzaken, waardoor meer herverdeling ontstaat, enzovoort). |
metadata.max.idle.ms |
180000 | > 5000 | Hiermee bepaalt u hoe lang de producent metagegevens in de cache opslaat voor een onderwerp dat niet-actief is. Als de verstreken tijd sinds een onderwerp voor het laatst is geproduceerd, de duur van de niet-actieve metagegevens overschrijdt, worden de metagegevens van het onderwerp vergeten en wordt bij de volgende toegang een aanvraag voor het ophalen van metagegevens afgedwongen. |
linger.ms |
> 0 | Voor scenario's met hoge doorvoer moet de linger-waarde gelijk zijn aan de hoogste toegestane waarde om te profiteren van batchverwerking. | |
delivery.timeout.ms |
Stel in volgens de formule (request.timeout.ms + linger.ms ) * retries . |
||
compression.type |
none |
Compressie wordt momenteel niet ondersteund. |
Alleen consumentenconfiguraties
Hier vindt u configuraties voor consumenten.
Eigenschap | Aanbevolen waarden | Toegestaan bereik | Notities |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 is de standaardwaarde en mag niet worden gewijzigd. | |
session.timeout.ms |
30.000 | 6000 .. 300000 | Begin met 30000, verhoog als u frequente herverdeling ziet vanwege gemiste heartbeats. Zorg ervoor dat uw request.timeout.ms ten minste de aanbevolen waarde van 60000 heeft en dat uw session.timeout.ms ten minste de aanbevolen waarde van 30000 is. Als deze instellingen te laag zijn, kan dit leiden tot time-outs voor consumenten, die vervolgens herverdelingen veroorzaken (die vervolgens meer time-outs veroorzaken, waardoor meer herverdeling ontstaat, enzovoort). |
max.poll.interval.ms |
300000 (standaard) | >session.timeout.ms | Wordt gebruikt voor time-out voor herbalanceren, dus dit moet niet te laag worden ingesteld. Moet groter zijn dan session.timeout.ms. |
librdkafka-configuratie-eigenschappen
Het hoofdconfiguratiebestand librdkafka
(koppeling) bevat uitgebreide beschrijvingen voor de onderstaande eigenschappen.
Producent- en consumentenconfiguraties
Eigenschap | Aanbevolen waarden | Toegestaan bereik | Notities |
---|---|---|---|
socket.keepalive.enable |
true | Dit is nodig als de verbinding naar verwachting niet actief is. Azure sluit binnenkomende TCP-inactiviteit > 240.000 ms. | |
metadata.max.age.ms |
~ 180000 | < 240000 | Kan worden verlaagd om wijzigingen in metagegevens sneller op te pikken. |
Alleen producentconfiguraties
Eigenschap | Aanbevolen waarden | Toegestaan bereik | Notities |
---|---|---|---|
retries |
2 | De standaardwaarde is 2147483647. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Event Hubs wordt intern standaard ingesteld op minimaal 20.000 ms. librdkafka de standaardwaarde is 5000, wat problematisch kan zijn. Hoewel aanvragen met lagere time-outwaarden worden geaccepteerd, wordt clientgedrag niet gegarandeerd. |
partitioner |
consistent_random |
Zie de librdkafka-documentatie | consistent_random is standaard en beste. In de meeste gevallen worden lege en null-sleutels in het ideale geval verwerkt. |
compression.codec |
none |
Compressie wordt momenteel niet ondersteund. |
Alleen consumentenconfiguraties
Eigenschap | Aanbevolen waarden | Toegestaan bereik | Notities |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 is de standaardwaarde en mag niet worden gewijzigd. | |
session.timeout.ms |
30.000 | 6000 .. 300000 | Begin met 30000, verhoog als u frequente herverdeling ziet vanwege gemiste heartbeats. |
max.poll.interval.ms |
300000 (standaard) | >session.timeout.ms | Wordt gebruikt voor time-out voor herbalanceren, dus dit moet niet te laag worden ingesteld. Moet groter zijn dan session.timeout.ms. |
Verdere opmerkingen
Bekijk de volgende tabel met veelvoorkomende configuratiegerelateerde foutscenario's.
Symptomen | Probleem | Oplossing |
---|---|---|
Fouten bij doorvoeren verschuiven vanwege herverdeling | Uw consument wacht te lang tussen aanroepen voor poll() en de service schopt de consument uit de groep. | U hebt verschillende mogelijkheden:
|
Netwerk-uitzonderingen bij hoge productiedoorvoer | Gebruikt u java-client + standaard max.request.size? Uw aanvragen zijn mogelijk te groot. | Zie Java-configuraties hierboven. |
Volgende stappen
Zie Limieten, quota en beperkingen voor Azure-abonnementen en -services voor quota en limieten van alle Azure-services.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor