Упражнение. Публикация событий и подписка на события с помощью функции "Публикация и подписка"

Завершено

В розничном приложении программное обеспечение, созданное отделами инвентаризации и доставки, должно реагировать на события друг друга в рамках типичного рабочего процесса. Например, после отгрузки заказа микрослужба инвентаризации должна вычитать товар из запасов.

В этом упражнении реализуйте pub/Sub в экземпляре Кэш Azure для Redis с помощью нескольких окон консоли.

Откройте консоль кэша Azure для Redis в двух экземплярах браузера.

Обратите внимание на двух отдельных клиентов, отправляющих и получающих сообщения через два уникальных экземпляра браузера. Каждый экземпляр браузера имеет консоль Redis, чтобы иллюстрировать функциональные возможности pub/Sub в режиме реального времени.

Открытие первого экземпляра браузера

  1. Войдите на портал Azure , используя ту же учетную запись, с помощью которой вы активировали песочницу.

  2. В категории Службы Azure выберите Больше служб, затем категорию Базы данных и щелкните Кэш Azure для Redis.

  3. Выберите экземпляр Кэша Azure для Redis, созданный в предыдущем упражнении.

    Screenshot of the Azure Cache for Redis resource list.

  4. В области ресурсов выберите консоль , чтобы открыть консоль Redis.

    Screenshot of the Console option in the resource pane.

  5. Оставьте консоль открытой для выполнения последующих задач в этом упражнении.

Открытие второго экземпляра браузера

  1. Войдите на портал Azure под той же учетной записью, которая использовалась для активации песочницы, а отдельном окне или на отдельной вкладке браузера.

  2. В категории Службы Azure выберите Больше служб, затем категорию Базы данных и щелкните Кэш Azure для Redis.

  3. Выберите экземпляр Кэша Azure для Redis, созданный в предыдущем упражнении.

  4. В области ресурсов выберите консоль , чтобы открыть консоль Redis.

  5. Оставьте консоль открытой для выполнения последующих задач в этом упражнении.

  6. На этом этапе необходимо открыть два экземпляра обозревателя с экземпляром консоли Redis.

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

    Совет

    Если операционная система позволяет, рекомендуем закрепить окна браузера рядом — так будет проще выполнить оставшуюся часть этого упражнения.

Подписка на известный канал и публикация сообщений

Подпишитесь на каналы с помощью команды SUBSCRIBE, а затем опубликуйте сообщения с помощью команды PUBLISH.

  1. В консоли первого экземпляра браузера выполните следующие действия:

    1. Введите следующую команду и нажмите клавишу ВВОД, чтобы начать прослушивание сообщений в канале org.shipping.alerts.

      SUBSCRIBE org.shipping.alerts
      
    2. Обратите внимание на ответ консоли, указывающий, что теперь он прослушивает канал org.shipping.alerts .

      Reading messages... (press ENTER to quit)
      1) "subscribe"
      2) "org.shipping.alerts"
      3) (integer) 1
      
  2. В консоли второго экземпляра браузера выполните следующие действия:

    1. Введите следующую команду и нажмите клавишу ВВОД , чтобы отправить новое сообщение с содержимым labelprint-sdf9878 в канал org.shipping.alerts.

      PUBLISH org.shipping.alerts labelprint-sdf9878
      
    2. Введите следующую команду и нажмите клавишу ВВОД , чтобы отправить новое сообщение с содержимым labelprint-sdf9878 в канал org.shipping.alerts.

      PUBLISH org.shipping.alerts packagesent-sdf9878
      
  3. Вернитесь в консоль первого экземпляра браузера и выполните следующие действия:

    1. В консоли появится первый ответ с информацией о получении нового сообщения в канале org.shipping.alerts.

      1) "message"
      2) "org.shipping.alerts"
      3) "labelprint-sdf9878"
      
    2. В консоли появится второй ответ с информацией о получении нового сообщения в канале org.shipping.alerts.

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

      Screenshot of the Redis console pair running PUBLISH and SUBSCRIBE commands

    3. Чтобы остановить прослушивание событий в консоли, нажмите клавишу ВВОД.

    4. Введите следующую команду и нажмите клавишу ВВОД, чтобы очистить выходные данные в консоли.

      clear
      
  4. Вернитесь в консоль второго экземпляра браузера и выполните следующие действия:

    1. Введите следующую команду и нажмите клавишу ВВОД, чтобы очистить выходные данные в консоли.

      clear
      

Подписка на шаблон каналов и прослушивание сообщений

Подпишитесь на шаблон каналов с помощью команды PSUBSCRIBE, а затем опубликуйте сообщение с помощью команды PUBLISH.

  1. В консоли первого экземпляра браузера выполните следующие действия:

    1. Введите следующую команду и нажмите клавишу ВВОД, чтобы начать прослушивание сообщений в канале org.shipping.alerts.

      PSUBSCRIBE org.inventory.*
      
    2. Обратите внимание на ответ консоли, указывающий, что он прослушивает шаблон канала org.inventory.* .

      Reading messages... (press ENTER to quit)
      1) "psubscribe"
      2) "org.inventory.*"
      3) (integer) 1
      
  2. В консоли второго экземпляра браузера выполните следующие действия:

    1. Введите следующую команду и нажмите клавишу ВВОД, чтобы отправить новое сообщение с содержимым item-sku-318947 в канал org.inventory.empty.

      PUBLISH org.inventory.empty item-sku-318947
      
    2. Введите следующую команду и нажмите клавишу ВВОД, чтобы отправить новое сообщение с содержимым order-dsy3821 в канал org.shipping.sent.

      PUBLISH org.shipping.sent order-dsy3821
      

      Примечание.

      Так как этот канал не соответствует шаблону org.inventory.*, эта команда не отправит сообщение другому клиенту.

  3. Вернитесь в консоль первого экземпляра браузера и выполните следующие действия:

    1. В консоли появится ответ с информацией о том, что она получила только одно новое сообщение с помощью шаблона каналов org.inventory.*.

      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. Чтобы остановить прослушивание событий в консоли, нажмите клавишу ВВОД.