Статьи

Mule и Redis получают веб-ошибку

Первоначально автор Дэвид Доссо

Недавно обновленный коннектор Redis для Mule позволяет вам удобно взаимодействовать с этим хранилищем данных NoSQL . Этот блог является учебным пособием, которому вы можете следовать, чтобы намочить ноги с Redis , если вы еще этого не знаете, или с Mule, если у вас есть опыт работы с Redis и вы хотите увидеть, как они оба могут работать вместе.

В этом уроке мы создадим очень простой бэкэнд, который фиксирует количество посещений страницы для идентифицированных пользователей через веб-баг . Этот пример иллюстрирует использование Mule в качестве инструмента для захвата событий и маршрутизации их в хранилище NoSQL для последующего анализа.

Предпосылки

Чтобы следовать этому уроку, вам понадобятся:

  • Рабочая установка стабильной версии Redis (версия 2.4 или выше),
  • Рабочая установка последней версии Mule Studio .

Получение готовой студии Mule

Модуль Redis не поставляется в комплекте с Mule Studio, поэтому мы должны сначала установить его. Для этого нам нужно сделать следующее:

  1. Откройте Mule Studio и в меню «Справка» выберите «Установить новое программное обеспечение…». Откроется диалоговое окно установки, показанное ниже.
  2. В раскрывающемся списке «Работа с» выберите «Сайт обновления облачных коннекторов MuleStudio ». Список доступных разъемов будет показан вам.
  3. Найдите и выберите модуль Redis в списке доступных разъемов. Более быстрый способ найти определенный соединитель — отфильтровать список, введя имя соединителя в поле ввода над списком. Вы можете выбрать более одного разъема для установки одновременно.
  4. Когда вы закончите выбор модуля Redis, нажмите кнопку «Далее». Детали установки показаны на следующей странице. Снова нажмите кнопку «Далее» и примите условия лицензионного соглашения.
  5. Нажмите на кнопку «Готово». Модуль Redis загружается и устанавливается на Studio. Вам нужно будет перезапустить Mule Studio для завершения установки.

Настройка проекта

Теперь, когда мы запустили Mule Studio, пришло время поработать над приложением Mule. Создайте новый проект мула, нажав «Файл> Создать> Проект мула». В диалоговом окне нового проекта вам необходимо ввести только имя проекта: используйте «redis-example» или подобное. Вы можете нажать «Далее», чтобы просмотреть остальные страницы.

Первое, что нужно сделать в нашем новом приложении, это настроить соединитель Redis для подключения к нашему локальному серверу.

Мы предполагаем, что вы не добавили защиту (защиту паролем) и не изменили порт по умолчанию, который он прослушивает.

Для этого в редакторе потока сообщений перейдите на вкладку «Глобальные элементы» в нижней части страницы. Затем нажмите кнопку «Создать» в правом верхнем углу вкладки. В открывшемся диалоговом окне типа «Выбрать глобальный элемент» выберите «Redis» в разделе «Cloud Connectors» и нажмите «ОК».

В диалоговом окне конфигурации Redis, которое следует, установите имя «Redis».

Вы закончили с настройкой. Нажмите «ОК», чтобы закрыть диалоговое окно.

Построение потока службы веб-ошибок

Пришло время начать строить поток, который будет:

  • принимать запросы HTTP GET,
  • увеличить пользовательскую карту попаданий, основанную на идентификаторе страницы,
  • и вернуть пустой ответ GIF.

Начните с добавления HTTPэлемента в визуальный редактор и настройте его, как показано ниже:

Мы хотим асинхронно увеличивать карту в Redis, поэтому сначала отбрасываем асинхронную область в потоке сразу после конечной точки HTTP. Затем поместите элемент коннектора Redis прямо в область асинхронного подключения. Дважды щелкните по нему и настройте его, как показано ниже:

Теперь давайте вернем пустой HTTP-ответ с типом содержимого GIF. Удалите «HTTP Response Builder» в потоке после асинхронной области и настройте его, как показано ниже:

Это оно! Ваш поток должен выглядеть так:

Поток XML

Конечный поток XML должен быть похож на это:

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:redis="http://www.mulesoft.org/schema/mule/redis"
    xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
        http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
        http://www.mulesoft.org/schema/mule/redis http://www.mulesoft.org/schema/mule/redis/3.4/mule-redis.xsd
        http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">

    <redis:config name="Redis" doc:name="Redis" />

    <flow name="redis-exampleFlow1" doc:name="redis-exampleFlow1">
        <http:inbound-endpoint exchange-pattern="request-response"
            host="localhost" port="8081" path="tracking/wb.gif" doc:name="HTTP" />
        <async doc:name="Async">
            <redis:hash-increment config-ref="Redis"
                field="#[message.inboundProperties.pageId]" key="#[message.inboundProperties.userId]"
                doc:name="Redis" />
        </async>
        <http:response-builder status="204" contentType="image/gif"
            doc:name="HTTP Response Builder" />
    </flow>
</mule>

Тестирование приложения

Теперь пришло время протестировать приложение. Запустите приложение в Mule Studio, используя Run As > Mule Application.

Если вы просматриваете, http://localhost:8081/tracking/wb.gif?userId=123456&amp;pageId=ABCвы должны получить пустую страницу в браузере.

Вы также можете встроить следующее в HTML-страницу и загрузить эту страницу:

<img src="http://localhost:8081/tracking/wb.gif?userId=123456&amp;pageId=ABC" alt="" width="0" height="0" />

Чтобы увидеть, что произошло за кулисами, подключитесь к серверу Redis с помощью клиента командной строки ( redis-cli). Затем запустите:

redis 127.0.0.1:6379&gt; EXISTS 123456
(integer) 1

Для идентификатора пользователя была создана пользовательская карта количества посещений
123456. Теперь запустите:

redis 127.0.0.1:6379&gt; HKEYS 123456
1) "ABC"

Хиты были записаны для идентификатора страницы
ABC. Теперь запустите:

redis 127.0.0.1:6379&gt; HGET 123456 ABC
"1"

Количество ударов в настоящее время равно 1. Вы должны увидеть, как увеличивается количество ударов по мере продолжения удара:
http://localhost:8081/tracking/wb.gif?userId=123456&amp;pageId=ABC

Твоя очередь

Этот простой урок покажет вам, как легко использовать возможности Redis от Mule. Теперь твоя очередь! Не стесняйтесь поделиться своими историями успеха с Мулом и Redis в качестве комментариев к этому посту.