Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha egy adatfolyam üzeneteket küld egy célvégpontnak, például Azure Event Hubs, Microsoft Fabric Real-Time Intelligencia, Kafka vagy más felhőszolgáltatásnak, előfordulhat, hogy a cél vagy a hálózat elérhetetlenné válik. Azure IoT műveletek a helyi MQTT-közvetítő-előfizetési modellt használja az üzenetek pufferelésére és a kézbesítés újrapróbálkozására.
Ez a cikk azt ismerteti, hogy az adatfolyamok hogyan védik az üzeneteket a célkimaradások során, és hogyan konfigurálhatja a közvetítői pufferelést és a lemezmegőrzést az erősebb védelem érdekében.
Hogyan pufferelik az adatfolyamok az üzeneteket a célkimaradások során?
Amikor a helyi MQTT-közvetítőt használja forrásvégpontként egy adatfolyamban, akár közvetlenül, akár közvetetten, közzétevő eszközökön keresztül, az adatfolyam előfizetőként fogadja az MQTT-közvetítőtől érkező üzeneteket. Az adatfolyam minden forrásüzenetet nyugtáz, miután az üzenet sikeresen feldolgozva és kézbesítve lett a célhelyre, vagy miután a rendszer szándékosan elvetette az üzenetet szűrés, sémaérvényesítés vagy üzenet lejárata miatt.
Ha a célvégpont nem érhető el, a kézbesítés nem fejezhető be. Ebben az esetben az adatfolyam nem nyugtázza a forrásüzenetet. Az MQTT-közvetítő megtartja az üzenetet az előfizetői üzenetsorban, és az adatfolyam újrapróbálkozza a kézbesítést. A kapcsolat visszaállításakor az adatfolyam üzenetsorba helyezett üzeneteket küld a célhelyre, és a sikeres kézbesítés után nyugtázza őket.
Az üzenet útja a következő: közzétevő vagy eszköz az MQTT-közvetítőhöz, az MQTT-közvetítő az adatfolyamhoz, és az adatfolyam a célvégponthoz vezet.
- Az MQTT-közvetítő üzenetet küld az adatfolyamnak.
- Az adatfolyam elküldi az üzenetet a célvégpontnak.
- Ha a küldés sikeres, az adatfolyam nyugtázza a forrásüzenetet, és a közvetítő eltávolítja azt az előfizetői üzenetsorból.
- Ha a küldés sikertelen, az adatfolyam nem nyugtázza a forrásüzenetet. A közvetítő várólistán tartja.
- Az adatfolyam mindaddig újrapróbálkozza a kézbesítést, amíg sikeres nem lesz, az üzenet lejár, vagy egy konfigurált korlát lép érvénybe.
Fontos
Az adatfolyam-pufferelés korlátozott. Az üzenetsorba helyezett üzenetekre az MQTT-közvetítő memóriaprofilja, az előfizetői üzenetsor korlátai, a lemezről támogatott üzenetpuffer mérete, az adatmegőrzési konfiguráció, valamint az üzenetek vagy munkamenetek lejárata vonatkozik. Konfigurálja ezeket a beállításokat a maximális üzemkimaradási időtartamra és átviteli sebességre, amit el kell viselnie.
Adatvédelmi konfigurációs rétegek
A következő konfigurációs rétegek segítségével szabályozhatja, hogy az üzenetek hogyan legyenek pufferelve és védve a célkimaradások során.
| Réteg | Mi ellen véd? | Alapértelmezett viselkedés | Ügyfélművelet |
|---|---|---|---|
| Adatfolyam újrapróbálkozása és a nyugtázás visszatartása | Ideiglenes célhely vagy hálózatkimaradás | Beépített helyi MQTT-közvetítőhöz és eszközalapú forrásokhoz | Nem igényel konfigurálást |
| MQTT-közvetítő előfizetői sor | Adatfolyam-előfizetés által fogadott, de még nem nyugtázott üzenetek | Memóriában tárolva | Memóriaprofil és előfizetői üzenetsor korlátainak konfigurálása |
| Lemezalapú üzenetpuffer | Nagy, a rendelkezésre álló memóriát meghaladó ideiglenes teendőnaplók | Disabled | A közvetítő konfigurálása üzembe helyezéskor lemezalapú üzenetpufferrel |
| MQTT-közvetítők megőrzése | Közvetítő vagy pod újraindítása, amíg az üzenetek sorban állnak | Alapértelmezés szerint letiltva | A közvetítő tartósságának és az előfizetői üzenetsor tartósságának engedélyezése |
Adatfolyam requestDiskPersistence |
Adatfolyamonkénti kérés állandó előfizetői üzenetsor-tárolóhoz | Disabled | Engedélyezze a requestDiskPersistence az adatfolyamon vagy az adatfolyam-gráfon, és engedélyezze a dinamikus előfizetői sor perzisztenciáját a közvetítőn. |
| Üzenet és munkamenet lejárata | A korlátozott tárolás és a visszajátszás viselkedése | Configurable | A lejárat és a korlátok beállítása a veszteségtűrés és a kimaradás időszaka alapján |
A helyi MQTT-közvetítő előfizetői üzenetsora alapértelmezés szerint a memóriában van tárolva. Az MQTT-közvetítőt kétféleképpen konfigurálhatja a lemez használatára:
- Lemezalapú üzenetpuffer: A lemezt átfedő pufferként használja, ha az üzenetsorok túllépik a rendelkezésre álló memóriát. Ez a beállítás segít a nagyobb ideiglenes torlódások kezelésében, de nem ugyanaz, mint az állandó megmaradás a bróker újraindítások során.
- MQTT-közvetítői adatmegőrzés: Megőrzi a kiválasztott közvetítőadatokat, beleértve az előfizetői üzenetsorokat is, hogy az üzenetsorba helyezett üzenetek túléljék az újraindításokat vagy az áramkimaradást.
A közvetítő konfigurációjának részleteiért lásd:
- Üzembe helyezés tervezése
- Lemezalapú üzenetpuffer
- MQTT-közvetítői adatmegőrzés konfigurálása
- Speciális MQTT-beállítások
Pufferelési konfiguráció kiválasztása
Válasszon ki egy konfigurációt a számítási feladat kimaradási időtartama és tartóssági követelményei alapján:
- Rövid átmeneti felhő- vagy hálózati kimaradások esetén a memóriabeli alapértelmezett előfizetői üzenetsor elegendő lehet.
- Nagyobb átviteli sebesség vagy hosszabb átmeneti kimaradások esetén konfigurálja a lemez által támogatott üzenetpuffert.
- Újraindításhoz vagy energiaveszteség-védelemhez engedélyezze az MQTT-közvetítők megőrzését és az előfizetői üzenetsorok megőrzését, majd engedélyezze
requestDiskPersistenceaz adatfolyamon vagy az adatfolyam-grafikonon. - Korlátozott tárolási környezetek esetén konfigurálja az előfizetői üzenetsor korlátait, az üzenetek lejáratát és a figyelést, hogy a közvetítő kényszerítse az üzenetsorkorlátokat, és elvetje vagy elutasítsa az üzeneteket a szabályzatnak megfelelően.
Példa: Célkimaradás
Tegyük fel, hogy egy adatfolyamot az alapértelmezett helyi MQTT-közvetítővel hoz létre forrásvégpontként, és Azure Event Hubs célvégpontként. Ha megszakad a kapcsolat az adatfolyam és a Azure Event Hubs között, az adatfolyam újrapróbálkozásokat küld, és nem nyugtázza a forrásüzeneteket. Az MQTT-közvetítő várólistára állítja a nem ismert üzeneteket. Az alapértelmezett beállításokkal az üzenetsor a memóriában van tárolva. A lemezhátterű üzenetpufferrel az üzenetsor átfolyhat a lemezre. A közvetítői adatmegőrzés és az adatfolyam requestDiskPersistenceesetén az üzenetsoros üzenetek túlélhetik a közvetítő újraindítását, a konfigurált megőrzési, lejárati és tárolási korlátoktól függően.
Lemezmegőrzés engedélyezése adatfolyamhoz
A lemezmegőrzés lehetővé teszi, hogy az adatfolyamok és az adatfolyam-grafikonok az újraindítások során is megőrizze a feldolgozási állapotot. Ha engedélyezi ezt a funkciót, az MQTT-közvetítő megőrzi az adatokat, például az előfizetői üzenetsor üzenetsorában lévő üzeneteket a lemezen. Ez a módszer segít biztosítani, hogy az adatfolyam adatforrása ne veszítsen el várólista-adatokat az áramkimaradások vagy a közvetítő újraindítása során. A közvetítő azért tartja fenn az optimális teljesítményt, mert a megőrzés adatfolyamonként van konfigurálva, így csak a szükséges adatfolyamok használják ezt a funkciót.
Az adatfolyam az előfizetés során egy MQTTv5 felhasználói tulajdonság használatával kéri az adatmegőrzést. Ez a funkció csak akkor működik, ha:
- Az adatfolyam az MQTT-közvetítőt vagy -objektumot használja forrásként.
- Az MQTT-közvetítő az adattípushoz
Enabledbeállított dinamikus adatmegőrzési móddal működik, mint például az előfizetői sorok kezelése.
Az MQTT-közvetítő adatmegőrzési konfigurációjáról további információt az MQTT-közvetítő megőrzésének konfigurálása című témakörben talál.
A beállítás elfogadja a Enabled vagy Disabled értéket. A Disabled az alapértelmezett.
Adatfolyam konfigurálása
Adatfolyam létrehozásakor vagy szerkesztésekor válassza a Szerkesztés lehetőséget, majd az Adatmegőrzés kérése mellett válassza az Igen lehetőséget.
Adatfolyam-diagram konfigurálása
Adatfolyam-diagram létrehozásakor vagy szerkesztésekor válassza a Szerkesztés lehetőséget, majd válassza az Igen lehetőséget az Adatmegőrzés kérése mellett.