Doporučené konfigurace pro klienty Apache Kafka
Tady jsou doporučené konfigurace pro používání služby Azure Event Hubs z klientských aplikací Apache Kafka.
Vlastnosti konfigurace klienta Java
Konfigurace producenta a příjemce
Vlastnost | Doporučené hodnoty | Povolený rozsah | Notes |
---|---|---|---|
metadata.max.age.ms |
180000 (přibližná) | < 240000 | Je možné snížit, aby se změny metadat chytá dříve. |
connections.max.idle.ms |
180000 | < 240000 | Azure zavře příchozí protokol TCP (Transmission Control Protocol) nečinný > 240 000 ms, což může vést k odesílání neaktivních připojení (zobrazených jako dávky s vypršenou platností kvůli vypršení časového limitu odeslání). |
Pouze konfigurace producenta
Konfigurace producenta najdete tady.
Vlastnost | Doporučené hodnoty | Povolený rozsah | Notes |
---|---|---|---|
max.request.size |
1000000 | < 1046528 | Služba ukončí připojení, pokud se odesílají požadavky větší než 1 046 528 bajtů. Tato hodnota se musí změnit a způsobit problémy ve scénářích s vysokou propustností. |
retries |
> 0 | Může vyžadovat zvýšení delivery.timeout.ms hodnoty, viz dokumentace. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Služba Event Hubs interně nastaví výchozí hodnotu minimálně 20 000 ms. I když se přijímají požadavky s nižšími hodnotami časového limitu, není zaručené chování klienta. Ujistěte se, že je request.timeout.ms alespoň doporučená hodnota 6 0000 a session.timeout.ms je alespoň doporučená hodnota 3 0000. Příliš nízká úroveň těchto nastavení může způsobit vypršení časového limitu uživatelů, což pak způsobí rovnováhu (což pak způsobí větší vypršení časového limitu, což způsobí větší rovnováhu atd.). |
metadata.max.idle.ms |
180000 | > 5000 | Určuje, jak dlouho producent ukládá metadata do mezipaměti pro téma, které je nečinné. Pokud uplynulá doba od posledního vytvoření tématu překročí dobu nečinnosti metadat, metadata tématu se zapomene a další přístup k němu vynutí požadavek na načtení metadat. |
linger.ms |
> 0 | V případě scénářů s vysokou propustností by se hodnota přetrvání měla rovnat nejvyšší přípustné hodnotě, aby bylo možné využít dávkování. | |
delivery.timeout.ms |
Nastavit podle vzorce (request.timeout.ms + linger.ms ) * . retries |
||
compression.type |
uncompressed, gzip |
Aktuálně se podporuje pouze komprese gzip. |
Pouze konfigurace uživatelů
Konfigurace uživatelů najdete tady.
Vlastnost | Doporučené hodnoty | Povolený rozsah | Notes |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 je výchozí hodnota a neměla by se měnit. | |
session.timeout.ms |
30000 | 6000 .. 300000 | Začněte 30000, pokud dochází k častému vyrovnávání kvůli zmeškaným prezenčních signálům. Ujistěte se, že je request.timeout.ms alespoň doporučená hodnota 6 0000 a session.timeout.ms je alespoň doporučená hodnota 3 0000. Příliš nízká úroveň těchto nastavení může způsobit vypršení časového limitu uživatelů, což pak způsobí rovnováhu (což pak způsobí větší vypršení časového limitu, což způsobí větší rovnováhu atd.). |
max.poll.interval.ms |
3000000 (výchozí) | >session.timeout.ms | Používá se k vypršení časového limitu vyvážení, takže by nemělo být nastaveno příliš nízké. Musí být větší než session.timeout.ms. |
vlastnosti konfigurace librdkafka
Hlavní librdkafka
konfigurační soubor (odkaz) obsahuje rozšířené popisy vlastností popsaných v následujících částech.
Konfigurace producenta a příjemce
Vlastnost | Doporučené hodnoty | Povolený rozsah | Notes |
---|---|---|---|
socket.keepalive.enable |
true | Je nutné, pokud se očekává, že připojení bude nečinné. Azure zavře příchozí nečinnost TCP > 240 000 ms. | |
metadata.max.age.ms |
~ 180000 | < 240000 | Je možné snížit, aby se změny metadat chytá dříve. |
Pouze konfigurace producenta
Vlastnost | Doporučené hodnoty | Povolený rozsah | Notes |
---|---|---|---|
retries |
> 0 | Výchozí hodnota je 2147483647. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Služba Event Hubs interně nastaví výchozí hodnotu minimálně 20 000 ms. librdkafka výchozí hodnota je 5000, což může být problematické. I když se přijímají požadavky s nižšími hodnotami časového limitu, není zaručené chování klienta. |
partitioner |
consistent_random |
Viz dokumentace k knihovně librdkafka | consistent_random je výchozí a nejlepší. Ve většině případů se v ideálním případě zpracovávají prázdné a null klíče. |
compression.codec |
none, gzip |
Aktuálně se podporuje pouze komprese gzip. |
Pouze konfigurace uživatelů
Vlastnost | Doporučené hodnoty | Povolený rozsah | Notes |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 je výchozí hodnota a neměla by se měnit. | |
session.timeout.ms |
30000 | 6000 .. 300000 | Začněte 30000, pokud dochází k častému vyrovnávání kvůli zmeškaným prezenčních signálům. |
max.poll.interval.ms |
3000000 (výchozí) | >session.timeout.ms | Používá se k vypršení časového limitu vyvážení, takže by nemělo být nastaveno příliš nízké. Musí být větší než session.timeout.ms. |
Další poznámky
Projděte si následující tabulku běžných scénářů chyb souvisejících s konfigurací.
Příznaky | Problém | Řešení |
---|---|---|
Posun selhání potvrzení kvůli vyrovnávání | Váš uživatel čeká příliš dlouho mezi voláními na dotazování () a služba spouští příjemce ze skupiny. | Máte několik možností:
|
Výjimky sítě s vysokou propustností | Pokud používáte klienta Java + výchozí max.request.size, můžou být vaše požadavky příliš velké. | Viz konfigurace Javy uvedené výše. |
Další kroky
Podívejte se na limity, kvóty a omezení předplatného a služeb Azure pro kvóty a omezení všech služeb Azure.