Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 uzavírá příchozí protokol Transmission Control Protocol (TCP) v nečinnosti > 240 000 ms, což může vést k odesílání nefunkčních spojení (zobrazených jako expirované dávky kvůli časovému 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 to 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. Timeouty producentů jsou bezpečné s hodnotami už od 10 000 ms a nebudou pro producenty problé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é nastavení může způsobit spotřebitelské časové limity, které pak způsobí přebalancování (a to způsobí další časové limity, což způsobí další vyvažování a podobně). |
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 |
none, 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é nastavení může způsobit spotřebitelské časové limity, které pak způsobí přebalancování (a to způsobí další časové limity, což způsobí další vyvažování a podobně). |
max.poll.interval.ms |
3000000 (výchozí) | >session.timeout.ms | Používá se pro časový limit přebalancování, takže by neměl být nastaven příliš nízko. 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é.
Zatímco požadavky s nižšími hodnotami vypršení času jsou přijímány, chování klienta není zaručeno. |
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 na přebalancování, takže by neměl být nastaven příliš nízko. 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.