IOSOR Teadmised

Sissetulevate MO-sündmuste deduplitseerimine API lüüsi tasemel

Kujundage suure läbilaskevõimega sissetuleva lüüsi deduplitseerimise lukud, et vältida arvelustoimingute ja saldode topeltkäivitamist.

Võrgu korduskatsed tekitavad tihti sissetulevate MO-sündmuste duplikaate veebikonksude kaudu. Kui neid API lüüsis ei peatata, toob see kaasa topeltarvelduse ja valed automaatvastused. Deterministlike sõrmejälgede loomine võimaldab korduvad sõnumid enne järgmisi töövooge kohe eemaldada.

Sissetulevate MO-sõnumite deduplitseerimise arhitektuur

Veebikonksude kaudu saabuv mobiilselt algatatud liiklus kannatab sageli mitme edastuskatse all ülesvoolu võrgu korduskatsete tõttu. Kui mobiilioperaatori võrk kaotab paketi kinnituse, saadab ülesvoolu lüüs andmepaketi uuesti. Ette makstud CPaaS-i valge märgise operaatorite jaoks võib nende duplikaatide vahele jätmine API lüüsi tasemel põhjustada arveldustöövoogude topeltkäivitamist, ekslikke automaatvastuseid ja vihaseid ettevõtte kliente. IOSOR lahendab selle probleemi range deduplitseerimiskihi rakendamisega otse sissetuleku äärel.

Redisi aatomlukud ja sõnumi sõrmejälg

Alamillisekundilise deduplitseerimise saavutamiseks genereerib API lüüs igale sissetulevale MO-sündmusele deterministliku krüptograafilise sõrmejälg. See räsikombinatsioon sisaldab saatja numbrit E.164 formaadis, saaja virtuaalset numbrit, täpset ajatempli akent ja andmepaketi kehapõhist teksti. Lüüs proovib koheselt Redis-is käivitada aatomilise määra-kui-ei-eksisteeri toimingu, kasutades seda räsi võtmena ja lühikese TTL-iga kuuskümmend sekundit. Kui võti on juba olemas, katkestab lüüs päringuahela, hülgab duplikaatpaketi ja tagastab ülesvoolu allikale viivitamata HTTP 200 OK vastuse.

Ette makstud saldode kaitsmine topeltarveldamise eest

Ette makstud taristu sõltub absoluutsest tehingute terviklikkusest. Ilma range ääre deduplitseerimiseta võib uuesti proovitud MO-sündmuste tulv käivitada samaaegsed pearaamatu debiteerimised või vestlusvoogude topeltseansi algatamised. Kuna meie platvorm nõuab uute rentnikukontode aktiveerimiseks ranget 20 USD suurust ettemaksu miinimumi, on fantoomkasutuse piikide vältimine eluliselt tähtis täpsete pearaamatu olekute säilitamiseks. Kui rentnik läheneb kiiruse lävele, mis on lähedal 1 000 USD kuus tehingute läbilaskevõimes, võivad leevendamata duplikaatide piigid moonutada analüütikat.

Järjekorra isoleerimine ja asünkroonne töötlejale üleandmine

Kui sissetulev MO-sündmus läbib lüüsi deduplitseerimise filtri, avaldatakse see isoleeritud RabbitMQ vahetuses, mis on jagatud rentniku ID järgi. See tagab, et ühe ettevõtte kampaania suuremahuline liikluse puhang ei saa rentniku järjekorra ressursse ammendada. Töötlejad tarbivad nendest järjekordadest sõnumeid, et täita veebikonksude väljastamist ja automaatset märksõnade sobitamist. JIT-i reeglid tagavad ressursside dünaamilise skaleerimise.

Veebikonksu tõrgete ja idempotentsuse korduskatsete haldamine

Related: sissetuleva webhooki korduskatsed · Sissetuleva liikluse taastamise nädal: MO kanalite avamine kiiruse piiramise,… · idempotentsus, korduskatsed ja raha.

Alustage IOSOR-iga vastupidavate sissetulevate lüüside jaoks

Stagingis POSTige sama MO kaks korda ühe pakkuja message-id-ga. Lüüsi lukk tohib järjekorda panna ühe sündmuse; tarbija jookseb korra. Eksportige lukuvõti ja kõrvale heidetud kaksik. Kaks 2xx kõlbab; kaks inboxi rida või kaks rahakoti puudutust kukutavad töö. See on järjekorra kokkusurumine lüüsil, mitte timeout-puhver, mitte STOP-kirje ega automaatvastuse lagi.

IOSOR kokkuvõte

Lüüsi MO-deduplikatsioon on lukk sündmuse id-l enne järjekorda. Üks message-id, üks sündmus.

Tehke: võtke lukk, siis pange järjekorda. Ärge: lootke, et inbox või rahakott kleepib hiljem.

Kas see juhend oli kasulik?

Seotud juhendid