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.
Tento článek obsahuje tipy pro řešení potíží, na které můžete narazit při používání služby Event Hubs pro Apache Kafka.
Výjimka Zaneprázdněný server
Metriky ThrottledRequests se můžou zobrazit kvůli omezení ze strany Kafka. U klientů AMQP služba Event Hubs okamžitě vrátí výjimku „server je zaneprázdněn“ při omezování služby. Je to ekvivalent zprávy "zkuste to znovu později". V systému Kafka jsou příchozí zprávy zpožděné, než jsou potvrzeny, zatímco odchozí zprávy se doručí se zpožděním. Délka zpoždění se vrátí v milisekundách jako throttle_time_ms v odpovědi na výstup/načtení. Ve většině případů se tyto zpožděné požadavky nezaprotokolují jako metriky ThrottledRequests na řídicích panelech služby Event Hubs. Místo toho by se hodnota odpovědi throttle_time_ms měla použít jako indikátor, že propustnost překročila zřízenou kvótu.
Pokud je provoz nadměrný, služba má následující chování:
- Pokud zpoždění požadavku překročí časový limit požadavku (request.timeout.ms), služba Event Hubs vrátí kód chyby porušení zásad .
- Pokud zpoždění načtení požadavku překročí časový limit požadavku, služba Event Hubs zaznamená požadavek jako omezený a odpoví prázdnou sadou záznamů a bez kódu chyby.
Nebyly přijaty žádné záznamy.
Může se stát, že zákazníci nedostávají žádné záznamy a neustále dochází k přerozdělování. V tomto scénáři zákazníci nezískají žádné záznamy a neustále přerozdělují rovnováhu. Pokud k tomu dojde, nedojde k žádné výjimce nebo chybě, ale Kafka logy ukážou, že se příjemci zasekli při pokusu o opětovné připojení ke skupině a přiřazení oddílů. Existuje několik možných příčin:
- Ujistěte se, že
request.timeout.msje alespoň doporučená hodnota 60000 a žesession.timeout.msje alespoň doporučená hodnota 3 0000. Příliš nízká úroveň těchto nastavení může způsobit vypršení časových limitů u uživatelů, což následně způsobí redistribuci zátěže (která pak vede k dalšímu vypršení časových limitů, což způsobí další redistribuci, a tak dále). - Pokud vaše konfigurace odpovídá doporučeným hodnotám a stále dochází k neustálému vyrovnávání, neváhejte otevřít problém (nezapomeňte do problému zahrnout celou konfiguraci, abychom vám mohli pomoct s laděním).
Problém s verzí komprese nebo formátu zprávy
Event Hubs pro Kafka v současné době podporuje pouze gzip algoritmus komprese. Pokud se použije jakýkoli jiný algoritmus, klientské aplikace uvidí chybu verze ve formátu zprávy (například The message format version on the broker does not support the request.).
Pokud je potřeba použít nepodporovaný algoritmus komprese, komprimujte data pomocí tohoto konkrétního algoritmu před odesláním do zprostředkovatelů a dekompresi po přijetí je platným alternativním řešením. Text zprávy je pouze pole bajtů do služby, takže komprese nebo dekomprese na straně klienta nezpůsobí žádné problémy.
NeznámáServerováVýjimka
Z klientských knihoven Kafka můžete obdržet výjimku UnknownServerException, která je podobná následujícímu příkladu:
org.apache.kafka.common.errors.UnknownServerException: The server experienced an unexpected error when processing the request
Otevřete tiket u podpory Microsoftu. Protokolování na úrovni ladění a časová razítka výjimek v UTC jsou užitečné při řešení problému.
Další problémy
Pokud při používání kafka ve službě Event Hubs dochází k problémům, zkontrolujte následující položky.
- Brána firewall blokuje provoz – Ujistěte se, že brána firewall neblokuje port 9093 .
-
TopicAuthorizationException – Nejčastější příčiny této výjimky jsou:
- Překlep v připojovacím řetězci v konfiguračním souboru, nebo
- Pokoušíte se použít službu Event Hubs pro Kafku v oboru názvů základní úrovně. Funkce Event Hubs pro Kafka není na úrovni Basic podporovaná.
- Nesoulad verzí Kafka – Event Hubs pro ekosystémy Kafka podporuje verze Kafka 1.0 a novějších. Některé aplikace používající Kafka verze 0.10 a novější můžou občas fungovat kvůli zpětné kompatibilitě protokolu Kafka, ale důrazně doporučujeme používat starší verze rozhraní API. Kafka verze 0.9 a starší nepodporují požadované protokoly SASL a nemůžou se připojit ke službě Event Hubs.
- Podivné kódování hlaviček AMQP při využívání systému Kafka – při odesílání událostí do centra událostí přes AMQP se všechny hlavičky datové části AMQP serializují v kódování AMQP. Příjemci Kafka nedeserializují hlavičky z AMQP rozhraní. Pokud chcete číst hodnoty záhlaví, ručně dekódujte hlavičky AMQP. Případně se můžete vyhnout použití hlaviček AMQP, pokud víte, že používáte protokol Kafka. Další informace najdete u tohoto problému na GitHubu.
- SASL ověřování – Získání vašeho rámce ke spolupráci s ověřovacím protokolem SASL vyžadovaným službou Event Hubs může být obtížnější, než se na první pohled zdá. Zjistěte, jestli můžete řešit potíže s konfigurací pomocí prostředků vaší architektury při ověřování SASL.
Omezení
Apache Kafka vs. Event Hubs Kafka. Rozhraní Kafka Azure Event Hubs má většinou stejné výchozí nastavení, vlastnosti, kódy chyb a obecné chování jako rozhraní Apache Kafka. Tady jsou uvedené instance, které se tyto dvě explicitně liší (nebo kde služba Event Hubs omezuje omezení, které Kafka neobsahuje):
- Maximální délka
group.idvlastnosti je 256 znaků. - Maximální velikost
offset.metadata.max.bytesje 1 024 bajtů. - Potvrzení posunu jsou omezena na 2 volání za sekundu na oddíl s maximální velikostí interního protokolu 1 MB.
Další kroky
Další informace o službě Event Hubs a Event Hubs pro Kafka najdete v následujících článcích: