Aanbevolen configuraties voor Apache Kafka-clients
Hier volgen de aanbevolen configuraties voor het gebruik van Azure Event Hubs vanuit Apache Kafka-clienttoepassingen.
Eigenschappen van Java-clientconfiguratie
Configuraties voor producenten en consumenten
Eigenschappen | Aanbevolen waarden | Toegestaan bereik | Opmerkingen |
---|---|---|---|
metadata.max.age.ms |
180000 (geschat) | < 240000 | Kan sneller worden verlaagd om wijzigingen in metagegevens op te halen. |
connections.max.idle.ms |
180000 | < 240000 | Azure sluit binnenkomende Transmission Control Protocol (TCP) inactief > 240.000 ms, wat kan leiden tot het verzenden van dode verbindingen (weergegeven als verlopen batches vanwege een time-out voor verzenden). |
Alleen producentconfiguraties
Hier vindt u producentconfiguraties.
Eigenschappen | Aanbevolen waarden | Toegestaan bereik | Opmerkingen |
---|---|---|---|
max.request.size |
1000000 | < 1046528 | De service sluit verbindingen als aanvragen groter zijn dan 1.046.528 bytes worden verzonden. Deze waarde moet worden gewijzigd en veroorzaakt problemen in productiescenario's met hoge doorvoer. |
retries |
> 0 | Mogelijk moet u delivery.timeout.ms waarde verhogen. Raadpleeg de documentatie. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Event Hubs is intern standaard ingesteld op minimaal 20.000 ms. Hoewel aanvragen met lagere time-outwaarden worden geaccepteerd, wordt het 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, kunnen time-outs voor consumenten ontstaan, waardoor er dan meer time-outs ontstaan, waardoor er meer balans ontstaat, enzovoort. |
metadata.max.idle.ms |
180000 | > 5000 | Hiermee bepaalt u hoelang de producent metagegevens opgeslagen in de cache van 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 de volgende toegang ertoe gedwongen een aanvraag voor het ophalen van metagegevens af te dwingen. |
linger.ms |
> 0 | Voor scenario's met hoge doorvoer moet de lingerwaarde gelijk zijn aan de hoogste toelaatbare waarde om te profiteren van batchverwerking. | |
delivery.timeout.ms |
Instellen op basis van de formule (request.timeout.ms + linger.ms ) * . retries |
||
compression.type |
uncompressed, gzip |
Momenteel wordt alleen gzip-compressie ondersteund. |
Alleen consumentenconfiguraties
Hier vindt u consumentenconfiguraties.
Eigenschappen | Aanbevolen waarden | Toegestaan bereik | Opmerkingen |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 is de standaardwaarde en mag niet worden gewijzigd. | |
session.timeout.ms |
30.000 | 6000 .. 300000 | Begin met 30000, verhoog of frequente herverdeling wordt weergegeven vanwege gemiste heartbeats. 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, kunnen time-outs voor consumenten ontstaan, waardoor er dan meer time-outs ontstaan, waardoor er meer balans ontstaat, enzovoort. |
max.poll.interval.ms |
300000 (standaard) | >session.timeout.ms | Wordt gebruikt voor een time-out voor opnieuw verdelen, dus deze mag niet te laag worden ingesteld. Moet groter zijn dan session.timeout.ms. |
eigenschappen van librdkaka-configuratie
Het hoofdconfiguratiebestand librdkafka
(koppeling) bevat uitgebreide beschrijvingen voor de eigenschappen die in de volgende secties worden beschreven.
Configuraties voor producenten en consumenten
Eigenschappen | Aanbevolen waarden | Toegestaan bereik | Opmerkingen |
---|---|---|---|
socket.keepalive.enable |
true | Noodzakelijk als de verbinding naar verwachting niet actief is. Azure sluit binnenkomende TCP > 240.000 ms. | |
metadata.max.age.ms |
~ 180000 | < 240000 | Kan sneller worden verlaagd om wijzigingen in metagegevens op te halen. |
Alleen producentconfiguraties
Eigenschappen | Aanbevolen waarden | Toegestaan bereik | Opmerkingen |
---|---|---|---|
retries |
> 0 | De standaardwaarde is 2147483647. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Event Hubs is 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 het clientgedrag niet gegarandeerd. |
partitioner |
consistent_random |
Raadpleeg de documentatie voor librdkaka | consistent_random is standaard en beste. Lege en null-sleutels worden in de meeste gevallen in het ideale geval verwerkt. |
compression.codec |
none, gzip |
Momenteel wordt alleen gzip-compressie ondersteund. |
Alleen consumentenconfiguraties
Eigenschappen | Aanbevolen waarden | Toegestaan bereik | Opmerkingen |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 is de standaardwaarde en mag niet worden gewijzigd. | |
session.timeout.ms |
30.000 | 6000 .. 300000 | Begin met 30000, verhoog of frequente herverdeling wordt weergegeven vanwege gemiste heartbeats. |
max.poll.interval.ms |
300000 (standaard) | >session.timeout.ms | Wordt gebruikt voor een time-out voor opnieuw verdelen, dus deze mag niet te laag worden ingesteld. Moet groter zijn dan session.timeout.ms. |
Verdere opmerkingen
Controleer de volgende tabel met veelvoorkomende configuratiefouten.
Symptomen | Probleem | Oplossing |
---|---|---|
Fouten bij het doorvoeren van verschuivingen vanwege herverdeling | Uw consument wacht te lang tussen aanroepen naar poll() en de service trapt de consument uit de groep. | U hebt verschillende opties:
|
Netwerk-uitzonderingen bij hoge productiedoorvoer | Als u een Java-client gebruikt en standaard max.request.size gebruikt, zijn uw aanvragen mogelijk te groot. | Zie Java-configuraties die eerder zijn vermeld. |
Volgende stappen
Zie Azure-abonnements- en servicelimieten, quota en beperkingen voor quota en limieten van alle Azure-services.