Oefening: gebeurtenissen publiceren en abonneren met pub/sub

Voltooid

In uw retailtoepassing moet de software die is gebouwd door de voorraad- en verzendafdelingen, reageren op elkaars gebeurtenissen als onderdeel van een typische werkstroom. De microservice voor voorraad moet bijvoorbeeld het artikel aftrekken van de voorraad zodra een order is verzonden.

In deze oefening implementeert u Pub/Sub in een Azure Cache voor Redis exemplaar met meerdere consolevensters.

Open de Azure Cache voor Redis-console in twee browserexemplaren

Bekijk twee afzonderlijke clients die berichten verzenden en ontvangen met behulp van twee unieke browserexemplaren. Elk browserexemplaren heeft de Redis-console om realtime pub-/subfunctionaliteit te illustreren.

Het eerste browserexemplaren openen

  1. Meld u aan bij de Azur-portal met hetzelfde account waarmee u de sandbox hebt geactiveerd.

  2. Selecteer meer services in de categorie Azure-services, selecteer de categorie Databases en selecteer vervolgens Azure Cache voor Redis.

  3. Selecteer het Azure Cache voor Redis exemplaar dat u in een vorige oefening hebt gemaakt.

    Screenshot of the Azure Cache for Redis resource list.

  4. Selecteer Console in het resourcevenster om de Redis-console te openen.

    Screenshot of the Console option in the resource pane.

  5. Laat de console geopend om volgende taken in deze oefening uit te voeren.

Het tweede browserexemplaren openen

  1. Meld u aan bij Azure Portal met hetzelfde account dat u hebt gebruikt om de sandbox en een afzonderlijk browservenster of tabblad te activeren.

  2. Selecteer meer services in de categorie Azure-services, selecteer de categorie Databases en selecteer vervolgens Azure Cache voor Redis.

  3. Selecteer het Azure Cache voor Redis exemplaar dat u in een vorige oefening hebt gemaakt.

  4. Selecteer Console in het resourcevenster om de Redis-console te openen.

  5. Laat de console geopend om volgende taken in deze oefening uit te voeren.

  6. Op dit moment moeten er twee browserexemplaren zijn geopend met een exemplaar van de Redis-console.

    Screenshot of two instances of Azure Cache for Redis console running.

    Tip

    Als uw besturingssysteem dit ondersteunt, raden we u aan de browservensters naast elkaar te plaatsen om de rest van deze oefening te vereenvoudigen.

Berichten abonneren en publiceren naar een bekend kanaal

Abonneer u op kanalen met behulp van de SUBSCRIBE opdracht en publiceer vervolgens berichten met behulp van de PUBLISH opdracht.

  1. Voer in de console van het eerste browserexemplaren de volgende acties uit:

    1. Voer de volgende opdracht in en gebruik enter om te beginnen met luisteren naar berichten op het kanaal org.shipping.alerts.

      SUBSCRIBE org.shipping.alerts
      
    2. Bekijk het antwoord van de console dat aangeeft dat deze nu luistert op het kanaal org.shipping.alerts .

      Reading messages... (press ENTER to quit)
      1) "subscribe"
      2) "org.shipping.alerts"
      3) (integer) 1
      
  2. Voer in de console van het tweede browserexemplaren de volgende acties uit:

    1. Voer de volgende opdracht in en gebruik enter om een nieuw bericht te verzenden met het inhoudslabelprint-sdf9878 naar het kanaal org.shipping.alerts.

      PUBLISH org.shipping.alerts labelprint-sdf9878
      
    2. Voer de volgende opdracht in en gebruik enter om een nieuw bericht te verzenden met het inhoudslabelprint-sdf9878 naar het kanaal org.shipping.alerts.

      PUBLISH org.shipping.alerts packagesent-sdf9878
      
  3. Voer in de console van het eerste browserexemplaren de volgende acties uit:

    1. Bekijk het eerste antwoord van de console dat aangeeft dat het een nieuw bericht heeft ontvangen op het kanaal org.shipping.alerts .

      1) "message"
      2) "org.shipping.alerts"
      3) "labelprint-sdf9878"
      
    2. Bekijk het tweede antwoord van de console dat aangeeft dat het een nieuw bericht heeft ontvangen op het kanaal org.shipping.alerts .

      1) "message"
      2) "org.shipping.alerts"
      3) "packagesent-sdf9878"
      

      Screenshot of the Redis console pair running PUBLISH and SUBSCRIBE commands

    3. Gebruik de ENTER-toets om te voorkomen dat de console luistert naar gebeurtenissen.

    4. Voer de volgende opdracht in en gebruik enter om de console-uitvoer te wissen.

      clear
      
  4. Voer in de console van het tweede browserexemplaren de volgende acties uit:

    1. Voer de volgende opdracht in en gebruik enter om de console-uitvoer te wissen.

      clear
      

Abonneren op een kanaalpatroon en luisteren naar berichten

Abonneer u op een patroon van kanalen met behulp van de PSUBSCRIBE opdracht en publiceer vervolgens een bericht met behulp van de PUBLISH opdracht.

  1. Voer in de console van het eerste browserexemplaren de volgende acties uit:

    1. Voer de volgende opdracht in en gebruik enter om te beginnen met luisteren naar berichten op het kanaal org.shipping.alerts.

      PSUBSCRIBE org.inventory.*
      
    2. Bekijk het antwoord van de console dat aangeeft dat deze nu luistert op het kanaal org.inventory.*

      Reading messages... (press ENTER to quit)
      1) "psubscribe"
      2) "org.inventory.*"
      3) (integer) 1
      
  2. Voer in de console van het tweede browserexemplaren de volgende acties uit:

    1. Voer de volgende opdracht in en gebruik enter om een nieuw bericht te verzenden met het inhoudsitem-sku-318947naar het kanaal org.inventory.empty.

      PUBLISH org.inventory.empty item-sku-318947
      
    2. Voer de volgende opdracht in en gebruik enter om een nieuw bericht te verzenden met de inhoudsorder-dsy3821 naar het kanaal org.shipping.sent.

      PUBLISH org.shipping.sent order-dsy3821
      

      Notitie

      Omdat dit kanaal niet overeenkomt met het patroon org.inventory.* moet u niet verwachten dat deze opdracht een bericht verzendt dat uw andere client ontvangt.

  3. Voer in de console van het eerste browserexemplaren de volgende acties uit:

    1. Bekijk het antwoord van de console dat aangeeft dat er slechts één nieuw bericht is ontvangen met behulp van het org.inventory.* -kanaalpatroon.

      1) "pmessage"
      2) "org.inventory.*"
      3) "org.inventory.empty"
      4) "item-sku-318947"
      

      Screenshot of the Redis console pair running PUBLISH and PSUBSCRIBE commands

    2. Gebruik de ENTER-toets om te voorkomen dat de console luistert naar gebeurtenissen.