Partíciók dinamikus hozzáadása egy eseményközponthoz (Apache Kafka-témakör)
Az Event Hubs üzenetstreamelést biztosít egy particionált felhasználói mintán keresztül, amelyben mindegyik felhasználó az üzenetstream csak egy adott részét, vagyis partícióját olvassa. Ez a minta biztosítja a horizontális skálázhatóságot az eseményfeldolgozáshoz, és egyéb, streamközpontú szolgáltatásokat is nyújt, amelyek az üzenetsorokban vagy témakörökben nem érhetők el. A partíció események egy rendezett sorozata az eseményközpontban. Az újabb események érkezésekor a rendszer hozzáadja őket a sorozat végéhez. A partíciókkal kapcsolatos további információkért lásd : Partíciók
Az eseményközpont létrehozásakor megadhatja a partíciók számát. Bizonyos esetekben előfordulhat, hogy az eseményközpont létrehozása után partíciókat kell hozzáadnia. Ez a cikk azt ismerteti, hogyan adhat hozzá partíciókat dinamikusan egy meglévő eseményközponthoz.
Fontos
A partíciók dinamikus hozzáadása csak az Event Hubs prémium és dedikált szintjeiben érhető el.
Feljegyzés
Apache Kafka-ügyfelek esetén egy eseményközpont egy Kafka-témakörre képez le. További leképezések az Azure Event Hubs és az Apache Kafka között: Kafka és Event Hubs fogalmi leképezés
A partíciók számának frissítése
Ez a szakasz bemutatja, hogyan frissítheti az eseményközpontok partíciószámát különböző módokon (PowerShell, parancssori felület stb.).
PowerShell
Az eseményközpont partícióinak frissítéséhez használja a Set-AzEventHub PowerShell parancsot.
Set-AzEventHub -ResourceGroupName MyResourceGroupName -Namespace MyNamespaceName -Name MyEventHubName -partitionCount 12
CLI
Az eseményközpont partícióinak frissítéséhez használja a az eventhubs eventhub update
CLI-parancsot.
az eventhubs eventhub update --resource-group MyResourceGroupName --namespace-name MyNamespaceName --name MyEventHubName --partition-count 12
Resource Manager-sablon
Frissítse a partitionCount
tulajdonság értékét a Resource Manager-sablonban, és telepítse újra a sablont az erőforrás frissítéséhez.
{
"apiVersion": "2017-04-01",
"type": "Microsoft.EventHub/namespaces/eventhubs",
"name": "[concat(parameters('namespaceName'), '/', parameters('eventHubName'))]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.EventHub/namespaces', parameters('namespaceName'))]"
],
"properties": {
"messageRetentionInDays": 7,
"partitionCount": 12
}
}
Apache Kafka
A partíciók számának növeléséhez használja az AlterTopics
API-t (például kafka-topics CLI-eszközzel). További részletekért lásd : Kafka-témakörök módosítása.
Event Hubs-ügyfelek
Nézzük meg, hogyan viselkednek az Event Hubs-ügyfelek, amikor a partíciók száma frissül egy eseményközponton.
Ha partíciót ad hozzá egy meglévő páros központhoz, az eseményközpont-ügyfél a szolgáltatástól kap egy MessagingException
értesítést, amely tájékoztatja az ügyfeleket arról, hogy az entitás metaadatai (az entitás az eseményközpont, a metaadatok pedig a partícióadatok) módosultak. Az ügyfelek automatikusan újra megnyitják az AMQP-hivatkozásokat, amelyek ezután felveszik a módosított metaadat-információkat. Az ügyfelek ezután normálisan működnek.
Feladói/gyártói ügyfelek
Az Event Hubs három feladói lehetőséget biztosít:
- Partíciók küldője – Ebben az esetben az ügyfelek közvetlenül egy partícióra küldik az eseményeket. Bár a partíciók azonosíthatók, és az események közvetlenül is elküldhetők hozzájuk, ezt a mintát nem javasoljuk. A partíciók hozzáadása nem befolyásolja ezt a forgatókönyvet. Javasoljuk, hogy indítsa újra az alkalmazásokat, hogy észleljék az újonnan hozzáadott partíciókat.
- Partíciókulcs feladója – ebben az esetben az ügyfelek egy kulccsal küldik el az eseményeket, így az adott kulcshoz tartozó összes esemény ugyanabba a partícióba kerül. Ebben az esetben a szolgáltatás kivonatozza a kulcsot és a megfelelő partícióhoz vezető útvonalakat. A partíciók számának frissítése a kivonatolás módosítása miatt rendelésen kívüli problémákat okozhat. Így ha érdekli a rendezés, győződjön meg arról, hogy az alkalmazás a meglévő partíciók összes eseményét felhasználja a partíciók számának növelése előtt.
- Ciklikus időszeletelés küldője (alapértelmezett) – Ebben a forgatókönyvben az Event Hubs szolgáltatás a partíciók közötti eseményeket ciklikus időszeletelésre fordítja, és terheléselosztási algoritmust is használ. Az Event Hubs szolgáltatás tisztában van a partíciók számának változásaival, és a partíciók számának módosításától számított másodperceken belül elküldi az új partícióknak.
Vevői/fogyasztói ügyfelek
Az Event Hubs közvetlen fogadókat és egy egyszerű, event processor nevű fogyasztói kódtárat biztosít.
Közvetlen fogadók – A közvetlen fogadók adott partíciókat figyelnek. A futtatókörnyezet viselkedésére nincs hatással, ha a partíciók felskálázva vannak egy eseményközpontban. A közvetlen fogadókat használó alkalmazásnak gondoskodnia kell az új partíciók felvételéről és a fogadók megfelelő hozzárendeléséről.
Eseményfeldolgozó állomás – Ez az ügyfél nem frissíti automatikusan az entitás metaadatait. Tehát nem veszi fel a partíciók számának növekedését. Az eseményfeldolgozó példány ismételt létrehozása entitás-metaadatok beolvasását eredményezi, amely új blobokat hoz létre az újonnan hozzáadott partíciókhoz. A már meglévő blobok nem lesznek hatással. Az összes eseményfeldolgozó példány újraindítása ajánlott annak biztosítása érdekében, hogy minden példány tisztában legyen az újonnan hozzáadott partíciókkal, és a terheléselosztás megfelelően legyen kezelve a felhasználók körében.
Ha a .NET SDK (WindowsAzure.ServiceBus) régi verzióját használja, az eseményfeldolgozó állomás újraindításkor eltávolít egy meglévő ellenőrzőpontot, ha az ellenőrzőpont partíciószáma nem egyezik a szolgáltatásból beolvasott partíciók számával. Ez a viselkedés hatással lehet az alkalmazásra.
2026. szeptember 30-án kivonjuk az Azure Service Bus SDK-kódtárakat a WindowsAzure.ServiceBus, a Microsoft.Azure.ServiceBus és a com.microsoft.azure.servicebus kódtárakból, amelyek nem felelnek meg az Azure SDK irányelveinek. Az SBMP protokoll támogatását is megszüntetjük, így 2026. szeptember 30. után már nem használhatja ezt a protokollt. Migrálás a legújabb Azure SDK-kódtárakba, amelyek kritikus fontosságú biztonsági frissítéseket és továbbfejlesztett képességeket kínálnak ezen dátum előtt.
Bár a régebbi kódtárak 2026. szeptember 30-tól továbbra is használhatók, a Microsoft már nem kap hivatalos támogatást és frissítéseket. További információkért lásd a támogatási nyugdíjazási bejelentést.
Apache Kafka-ügyfelek
Ez a szakasz azt ismerteti, hogy az Azure Event Hubs Kafka-végpontját használó Apache Kafka-ügyfelek hogyan viselkednek az eseményközpont partíciószámának frissítésekor.
Azok a Kafka-ügyfelek, amelyek az Apache Kafka protokollal használják az Event Hubsot, másképp viselkednek, mint az AMQP protokollt használó event hub-ügyfelek. A Kafka-ügyfelek ezredmásodpercenként metadata.max.age.ms
egyszer frissítik a metaadataikat. Ezt az értéket az ügyfélkonfigurációkban kell megadnia. A librdkafka
kódtárak is ugyanazt a konfigurációt használják. A metaadatok frissítései tájékoztatják az ügyfeleket a szolgáltatás változásairól, beleértve a partíciók számának növelését is. A konfigurációk listáját az Event Hubs Apache Kafka-konfigurációiban találja.
Feladói/gyártói ügyfelek
A gyártók mindig azt diktálják, hogy a küldési kérések tartalmazzák az egyes létrehozott rekordok partíciócélját. Tehát az összes termék particionálása ügyféloldalon történik a közvetítő metaadatainak gyártói nézetével. Miután hozzáadta az új partíciókat a gyártó metaadatnézetéhez, azok elérhetők lesznek a produceri kérésekhez.
Fogyasztói/vevő ügyfelek
Amikor egy fogyasztói csoporttag metaadat-frissítést végez, és felveszi az újonnan létrehozott partíciókat, az a tag kezdeményezi a csoport újraegyensúlyozását. A felhasználói metaadatok ezután frissülnek az összes csoporttag esetében, és az új partíciókat a kiosztott újraegyensúlyozási vezető rendeli hozzá.
Ajánlások
Ha partíciókulcsot használ a gyártói alkalmazásokkal, és a kulcskivonatolástól függ, hogy biztosan rendezze a partíciókat, nem ajánlott dinamikusan hozzáadni a partíciókat.
Fontos
Bár a meglévő adatok megőrzik a sorrendet, a partíciókivonatolás megszakad a partíciók hozzáadása miatt a partíciók számának módosítása után kivonatolt üzenetek esetében.
A következő esetekben javasolt partíció hozzáadása egy meglévő témakörhöz vagy eseményközpont-példányhoz:
- Amikor az események küldésének alapértelmezett módszerét használja
- Kafka alapértelmezett particionálási stratégiák, példa – Sticky Assignor stratégia
Következő lépések
A partíciókról további információt a Partíciók című témakörben talál.