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


Javasolt konfigurációk Apache Kafka-ügyfelekhez

Az Alábbiakban az Apache Kafka-ügyfélalkalmazásokból származó Azure Event Hubs használatához ajánlott konfigurációkat talál.

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

Gyártó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 gyorsabb átvétele érdekében csökkenthető.
connections.max.idle.ms 180000 < 240000 Az Azure 240 000 ms tétlenséget > zár be a bejövő Transmission Control Protocol (TCP) szolgáltatásban, ami halott kapcsolatok küldését eredményezheti (a küldési időtúllépés miatt lejárt kötegekként jelenik meg).

Csak gyártókonfigurációk

A gyártói konfigurációk itt találhatók.

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
max.request.size 1 000 000 < 1046528 A szolgáltatás 1 046 528 bájtnál nagyobb kérések esetén bezárja a kapcsolatokat. Ezt az értéket módosítani kell , és problémákat okoz a nagy átviteli sebesség esetén.
retries > 0 Előfordulhat, hogy delivery.timeout.ms érték növelésére van szükség, 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. 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 aztán újraegyensúlyozást okozhat (ami több időtúllépést okoz, ami további kiegyensúlyozást és így tovább) okozhat.

metadata.max.idle.ms 180000 > 5000 Azt szabályozza, hogy a gyártó mennyi ideig gyorsítótárazza az inaktív témakörök metaadatait. Ha egy témakör legutóbbi létrehozása óta eltelt idő meghaladja a metaadatok tétlenségének időtartamát, akkor a témakör metaadatai feledésbe merülnek, és a következő hozzáférés metaadat-lekérési kérést kényszerít.
linger.ms > 0 A nagy átviteli sebességű forgatókönyvek esetében az eltolás értékének meg kell egyezőnek lennie a legmagasabb elviselhető értékkel a kötegelés előnyeinek kihasználásához.
delivery.timeout.ms Állítsa be a képlet (request.timeout.ms + linger.ms) * retriesszerint.
compression.type none, gzip Jelenleg csak a gzip-tömörítés támogatott.

Csak fogyasztói konfigurációk

A fogyasztói konfigurációk itt találhatók.

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
heartbeat.interval.ms 3000 A 3000 az alapértelmezett érték, és nem szabad módosítani.
session.timeout.ms 30000 6000 .. 300 000 Kezdje a 30000-zel, és növelje, ha gyakori kiegyensú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 aztán újraegyensúlyozást okozhat (ami több időtúllépést okoz, ami további kiegyensúlyozást és így tovább) okozhat.

max.poll.interval.ms 300000 (alapértelmezett) >session.timeout.ms Az újraegyensúlyozás időtúllépéséhez használatos, ezért 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) a következő szakaszokban ismertetett tulajdonságok kiterjesztett leírását tartalmazza.

Gyártói és fogyasztói konfigurációk

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
socket.keepalive.enable true Szükség van arra az esetre, ha a kapcsolat várhatóan tétlen lesz. Az Azure 240 000 ms-os bejövő TCP-tétlenséget > zár be.
metadata.max.age.ms ~ 180000 < 240000 A metaadatok módosításainak gyorsabb átvétele érdekében csökkenthető.

Csak gyártókonfigurációk

Tulajdonság Ajánlott értékek Engedélyezett tartomány Jegyzetek
retries > 0 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. librdkafka 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 alapértelmezett és legjobb. Az üres és null kulcsok a legtöbb esetben ideálisan kezelhetők.
compression.codec none, gzip Jelenleg csak a gzip-tömörítés 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, és nem szabad módosítani.
session.timeout.ms 30000 6000 .. 300 000 Kezdje a 30000-zel, és növelje, ha gyakori kiegyensú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 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 szavazásra irányuló hívások között, és a szolgáltatás kirúgja a fogyasztót a csoportból. Több lehetősége is van:
  • A 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 magas termékteljesítménynél Ha Java-ügyfelet + alapértelmezett max.request.size értéket használ, előfordulhat, hogy a kérések túl nagyok. Lásd a korábban említett Java-konfigurációkat.

Következő lépések

Tekintse meg az Azure-előfizetések és -szolgáltatások korlátait, kvótáit és korlátozásait az összes Azure-szolgáltatás kvótáihoz és korlátaihoz.