Tapahtuman lähtevät viestit -mallin toteuttaminen Dataversen avulla

Yritysratkaisujen on toimitettava viestejä luotettavasti, kun Dataversessa tapahtuu tietomuutoksia. Tämä viitearkkitehtuuri näyttää, miten transactional Outbox -kuvio otetaan käyttöön Dataversen kanssa viestien menetyksen riskin pienentämiseksi ja siten integroitujen järjestelmien synkronoimiseksi.

Vinkki

Tässä artikkelissa on esimerkkiskenaario ja yleinen esimerkkiarkkitehtuuri, joka havainnollistaa, miten tapahtumien luotettava toimittaminen Dataversesta toteutetaan. Arkkitehtuuriesimerkkiä voidaan muokata moniin eri skenaarioihin ja toimialoihin.

Arkkitehtuurikaavio

Arkkitehtuurikaavio, joka näyttää, miten Dataverse toteuttaa Transactional Outbox -mallin tallentamalla outbox-tietueet samassa transaktiossa kuin liiketoimintatietojen muutokset ja julkaisemalla viestejä Azuren palveluväyläiin jatkokäsittelyä varten.

Workflow

Seuraavat vaiheet kuvaavat arkkitehtuuriesimerkkikaaviossa esitettyä työnkulkua:

  1. Dataversessa suoritetaan tietotoiminto, kuten Yhteyshenkilö-tietueen luominen tai päivittäminen. Tämä toiminto luo tietokantatapahtuman.
  2. Dataversen synkroninen laajennus käynnistyy tämän tapahtuman seurauksena ja luo tietueen Dataversen lähtevien viestien taulukkoon saman tapahtuman osana.
  3. Jos laajennuksen suoritus onnistuu, tapahtuma tallentaa sekä lähtevien viestien tietueen että alkuperäisen tietueen (kuten Yhteyshenkilö-tietue) muutokset.
  4. Jos laajennuksen suoritus epäonnistuu, alkuperäinen tietotapahtuma palautetaan, eikä Dataverse tee tietueeseen muutoksia.
  5. Asynkroninen laajennus käynnistyy, kun tietue luodaan Dataversen lähtevien viestien taulukkoon, ja kirjoittaa viestin Azuren palveluväylän jonoon tai aiheeseen.
  6. Viestin kuluttaja kuuntelee viestejä, jotta se voi käsitellä viestit ja välittää ne kohdejärjestelmään.

Komponentit

Dataverse on tapahtumien lähdetietojärjestelmä, jossa tietotapahtuma suoritetaan ja jossa lähtevien tietojen taulukko sijaitsee. Se lähettää asynkronisesti viestejä viestinvälittäjälle laajennuksen avulla.

Azuren palveluväylä on luotettava yritystason välittäjä, joka vastaanottaa viestejä Dataversesta käsiteltäviksi vastaanottavista järjestelmistä.

  • Jonot ovat ideaalisia, kun viestillä on yksi vastaanottaja.
  • Aiheet ovat parhaita, kun monet tilaajat saattavat käsitellä samaa viestiä tai tarvitsevat suodatusehtoja viestien valikoivaan käsittelyyn.

Azure Monitor on kattava valvontaratkaisu pilviympäristöjen ja paikallisten ratkaisujen valvontatietojen keräämistä, analysointia ja käsittelemistä varten. Käytä Azuren palveluväylän valmiita mittareita, kun haluat seurata jonossa, aiheessa tai virheviestijonossa olevien viestien määrää.

Azure Application Insightsia käytetään sovelluksen suorituskyvyn valvonnassa, ja se voidaan ottaa käyttöön Dataverse-laajennuksille jäljityslokien lähettämiseksi Application Insights -työtilaan.

Vaihtoehdot:

  • Azure Logic Apps: Toteuttamiskelpoinen vähäkoodinen vaihtoehto viestien toimittamiselle outbox-taulukosta viestinvälittäjälle, jos haluat tarkemman hallinnan siihen, milloin viestin orkestrointi ja toimittaminen käynnistetään (esimerkiksi mikroeräajona).
  • Azure-funktiot: Koodipohjainen vaihtoehto, joka on hyvin joustava ja skaalautuva vaihtoehto suurten määrien ja ajoittaisten virheiden uudelleenyritysten käsittelemiseksi.

Skenaarion tiedot

Yritysratkaisujen on usein vaihdettava kriittisiä tietoja muiden järjestelmien kanssa viestien kautta. Jotta voidaan varmistaa yhdenmukaisuus eri järjestelmissä, käsittele tietotoiminto ja viestien toimitus yhtenä atomisena operaationa. Useimmat tapahtumajärjestelmät ja viestien välittäjät tukevat kuitenkin harvoin hajautettuja tapahtumia, tai ne tuovat käyttöön tiukkaa kytkentää, jota haluat välttää. Ilman hajautettua tapahtumaa ei ole luotettavuustakuuta, koska virhe voi tapahtua, kun viesti lähetetään välittäjälle sen jälkeen kun tapahtuma on vahvistettu.

Tapahtuman lähtevien viestien malli ratkaisee tämän haasteen luomalla viestin samaan paikalliseen tietokantatapahtumaan, joka päivittää liiketoimintatiedot. Erillinen prosessi voi sitten toimittaa viestin outbox-taulukosta viestinvälittäjälle. Ajoittaiset prosessivirheet eivät ole ongelma. Lähtevien viestien taulukko tallentaa viestin niin, ettei sitä menetetä, ja prosessi yrittää uudelleen niin kauan, kunnes se onnistuu.

Dataverse on hyvin toimiva, laajennettava low-code-tietoympäristö, joka sisältää tapahtumatietojen tallennustilan. Se voi toteuttaa tämän mallin kriittisissä lähtevän integroinnin skenaarioissa.

Huomioitavat asiat

Näillä näkökohdilla toteutetaan Power Platform Well-Architected -pilareita, joka on joukko ohjaavia periaatteita, jotka parantavat työkuorman laatua. Lisätietoja: Microsoft Power Platform Well-Architected.

Luotettavuus

Tämä malli lisää merkittävästi luotettavuutta, takaa ainakin kerran tapahtuvan toimituksen ja lopullisen yhdenmukaisuuden varmistamalla tapahtumien yhdenmukaisuuden. Viestinvälittäjän avulla se suojaa jatkojärjestelmiä ylikuormitukselta hallitsemalla tiedonkulkua lähde- ja kohdejärjestelmien välillä ja suojaamalla jatkojärjestelmiä käytettävyysongelmilta.

Kun viestien järjestys on määritettävä, ota Azuren palveluväylä -istunnot käyttöön jonossa tai tilauksessa. Tuottajan tulisi määrittää yhtenäinen SessionId-tunnus, kuten Dataverse-tietue- tai aggregaattitunnus, liittyville viesteille, jotta ne käsitellään järjestyksessä kyseisen istunnon sisällä. Suunnittele idempotentin käsittelyn kuluttajat, sillä tämä malli tarjoaa vähintään kerran tapahtuvan toimituksen, ja päällekkäisiä viestejä saattaa esiintyä. Jos puuttuvien tai sekvenssin ulkopuolisen tapahtuman havaitseminen on tärkeää, sanomat voivat sisältää sovellustason järjestysnumeron. Järjestystakuut koskevat istunnon sisällä eivätkä globaalisti, ja ratkaisun tulee määrittää, miten uudelleenyritykset ja virhejonoon siirretyt sanomat vaikuttavat kyseisen istunnon myöhempään käsittelyyn.

Security

Azure-palveluiden avulla Dataverse voi todentautua viestinvälittäjään (Azuren palveluväylä) Azuren hallittujen identiteettien kautta Power Platformin hallittujen identiteettien ominaisuuden avulla. Tämä lähestymistapa poistaa riskin luottamuksellisten tunnistetietojen tallentamisesta ja käyttökatkoista, joita aiheutuu salaisuuksien vaihtamisesta.

Suoritustehokkuus

Viestinvälityspalvelun, kuten Azuren palveluväyläin, käyttö auttaa tasaamaan kuormitusta ja varmistamaan, etteivät taustajärjestelmän sovellukset ylikuormitu suurten volyymien aikana.

Harkitse Azure-funktion käyttämistä asynkronisen Dataverse-laajennuksen sijaan viestien lähettämiseksi Azuren palveluväyläiin, jos viestimäärät kasvavat erittäin suuriksi. Tämä lähestymistapa tarjoaa eniten skaalautuvuutta ja joustavuutta suuren tietuemäärän käsittelemiseen eränä ja tilapäisten virheiden käsittelemiseen.

Avustajat

Microsoft ylläpitää tätä artikkelia. Seuraavat avustajat kirjoittivat tämän artikkelin.

Tärkeimmät kirjoittajat: