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:
|
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.