Megosztás a következőn keresztül:


Ajánlott konfigurációk Apache Kafka-ügyfelekhez

Íme az Apache Kafka-ügyfélalkalmazásokból származó Azure Event Hubs használatához ajánlott konfigurációk.

Java-ügyfélkonfiguráció tulajdonságai

Előállítói és fogyasztói konfigurációk

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
metadata.max.age.ms 180000 (hozzávetőleges) < 240000 A metaadatok módosításainak hamarabbi átvételéhez csökkenthető.
connections.max.idle.ms 180000 < 240000 Az Azure 240 000 ms-os bejövő TCP-tétlenséget > zár be, ami megszakadt kapcsolatok küldését eredményezheti (a küldés időtúllépése miatt lejárt kötegekként jelenik meg).

Csak előállítói konfigurációk

Az előállítók konfigurációi itt találhatók.

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
max.request.size 1000000 < 1046528 A szolgáltatás 1 046 528 bájtnál nagyobb kérések esetén lezárja a kapcsolatokat. Ezt az értéket módosítani kell , és problémákat okoz a nagy átviteli sebességű forgatókönyvekben.
retries > 0 Előfordulhat, hogy delivery.timeout.ms érték növelését igényli, lásd a dokumentációt.
request.timeout.ms 30000 .. 60000 > 20000 Az Event Hubs belsőleg alapértelmezés szerint legalább 20 000 ms lesz. Bár az alacsonyabb időtúllépési értékekkel rendelkező kérések elfogadottak, az ügyfél viselkedése nem garantált..

Győződjön meg arról, hogy a request.timeout.ms legalább a javasolt érték 60000, és a session.timeout.ms legalább a javasolt érték 30000. Ha ezek a beállítások túl alacsonyak, az a fogyasztói időtúllépéseket okozhatja, ami újraegyensúlyozást okozhat (ami több időtúllépést okoz, ami több kiegyensúlyozást és így tovább).

metadata.max.idle.ms 180000 > 5000 Azt szabályozza, hogy az előállító mennyi ideig gyorsítótárazza a metaadatokat egy tétlen témakörhöz. Ha a témakör legutóbbi létrehozása óta eltelt idő meghaladja a metaadatok tétlen időtartamát, akkor a témakör metaadatai fel lesznek felejtve, és a következő hozzáférés metaadat-lekérési kérést kényszerít ki.
linger.ms > 0 A nagy átviteli sebességű forgatókönyvek esetében a kötegelés előnyeinek kihasználásához az értéknek meg kell egyeznie a legmagasabb elviselhető értékkel.
delivery.timeout.ms Állítsa be a következő képlet szerint: (request.timeout.ms + linger.ms) * . retries
compression.type none A tömörítés jelenleg nem támogatott.

Csak fogyasztói konfigurációk

A fogyasztói konfigurációkat itt találja.

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
heartbeat.interval.ms 3000 A 3000 az alapértelmezett érték, ezért nem szabad módosítani.
session.timeout.ms 30000 6000 .. 300000 Kezdje a 30000-zel, és növelje a értéket, ha gyakori újraegyensúlyozást tapasztal a kihagyott szívverések miatt.

Győződjön meg arról, hogy a request.timeout.ms legalább a javasolt érték 60000, és a session.timeout.ms legalább a javasolt érték 30000. Ha ezek a beállítások túl alacsonyak, az a fogyasztói időtúllépéseket okozhatja, ami újraegyensúlyozást okozhat (ami több időtúllépést okoz, ami több kiegyensúlyozást és így tovább).

max.poll.interval.ms 300000 (alapértelmezett) >session.timeout.ms Az újraegyensúlyozás időtúllépéséhez használatos, ezért ezt nem szabad túl alacsonyra állítani. Nagyobbnak kell lennie, mint session.timeout.ms.

librdkafka konfigurációs tulajdonságai

A fő librdkafka konfigurációs fájl (hivatkozás) az alábbi tulajdonságok bővített leírását tartalmazza.

Előállítói és fogyasztói konfigurációk

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
socket.keepalive.enable true Akkor szükséges, ha a kapcsolat várhatóan tétlen lesz. Az Azure 240 000 ms bejövő TCP-tétlenséget > zár be.
metadata.max.age.ms ~ 180000 < 240000 A metaadatok módosításainak hamarabbi átvételéhez csökkenthető.

Csak előállítói konfigurációk

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
retries 2 Az alapértelmezett érték a 2147483647.
request.timeout.ms 30000 .. 60000 > 20000 Az Event Hubs belsőleg alapértelmezés szerint legalább 20 000 ms lesz. librdkafka az alapértelmezett érték 5000, ami problémás lehet. Bár az alacsonyabb időtúllépési értékekkel rendelkező kérések elfogadottak, az ügyfél viselkedése nem garantált.
partitioner consistent_random Lásd a librdkafka dokumentációját consistent_random az alapértelmezett és a legjobb. Az üres és null kulcsok kezelése ideális a legtöbb esetben.
compression.codec none A tömörítés jelenleg nem támogatott.

Csak fogyasztói konfigurációk

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
heartbeat.interval.ms 3000 A 3000 az alapértelmezett érték, ezért nem szabad módosítani.
session.timeout.ms 30000 6000 .. 300000 Kezdje a 30000-zel, és növelje a értéket, ha gyakori újraegyensúlyozást tapasztal a kihagyott szívverések miatt.
max.poll.interval.ms 300000 (alapértelmezett) >session.timeout.ms Az újraegyensúlyozás időtúllépéséhez használatos, ezért ezt nem szabad túl alacsonyra állítani. Nagyobbnak kell lennie, mint session.timeout.ms.

További megjegyzések

Tekintse meg a konfigurációval kapcsolatos gyakori hibaforgatókönyvek alábbi táblázatát.

Hibajelenségek Probléma Megoldás
Eltolás véglegesítési hibái az újraegyensúlyozás miatt A fogyasztó túl sokáig várakozik a poll() hívásai között, és a szolgáltatás kirúgja a fogyasztót a csoportból. Erre számos lehetősége van:
  • Lekérdezésfeldolgozás időtúllépésének növelése (max.poll.interval.ms)
  • Az üzenetköteg méretének csökkentése a feldolgozás felgyorsításához
  • A feldolgozás párhuzamosításának javítása a consumer.poll() blokkolásának elkerülése érdekében
A három kombinációjának alkalmazása valószínűleg a legbölcsébb.
Hálózati kivételek nagy teljesítményen Java-ügyfelet használ + default max.request.size? Előfordulhat, hogy a kérések túl nagyok. Lásd a fenti Java-konfigurációkat.

Következő lépések

Lásd: Az Azure-előfizetések és -szolgáltatások korlátozásai, kvótái és megkötései az összes Azure-szolgáltatás kvótáihoz és korlátaihoz.