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 ) * retries szerint. |
||
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:
|
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.