Javalite для проекта Microservice, доступна ли поддержка отслеживания / мониторинга приложений? - PullRequest
0 голосов
/ 23 апреля 2019

Я должен использовать Javalite для своего проекта, основанного на архитектуре Microservice, поэтому хотел проверить, доступна ли поддержка отслеживания (что-то похожее на / actator / health & / activator / prometheus в Spring Boot) через какой-либо существующий плагин или какие-либо предложения, касающиеся Пользовательские изменения, чтобы поддержать то же самое?

1 Ответ

0 голосов
/ 23 апреля 2019

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

  • Клиентское веб-приложение (Web)
  • Приложение бэк-офиса для контроля учетных записей, отчетности и т. Д. (Администратор)
  • API веб-сервисов (API)
  • Приложение для обработки бэкэнда (рабочий)

Каждое приложение кластеризовано, поэтому у нас будет несколько экземпляров, и нам нужно знать работоспособность каждого экземпляра. Состояние каждого экземпляра определяется по:

  1. Текущее свободное пространство кучи
  2. Доступ к базам данных (обычно несколько)
  3. Доступ к кешу
  4. Доступ к локальным сервисам (web, api, работнику и т. Д.)
  5. Доступ к NFS
  6. Что еще имеет смысл для этого приложения

Итак ... мы реализуем так называемое StatusController для каждого типа приложения. Такой контроллер состояния будет вызывать все сервисы, один за другим, необходимые для существования этого приложения, когда вызывается его метод index(), и генерирует документ JSON с результатами. Если все хорошо, документ JSON прост {"status":"OK", "service1": "OK", "service2": "OK"} или что-то подобное. Если одна из служб недоступна, она генерирует исключение и отвечает файлом JSON, который содержит точное исключение: {"status":"ERROR", "service1": "OK", "service2": "Exception: exception stack trace"}.

Веб-приложение администратора также содержит одну страницу работоспособности, которая объединяет вызовы для всех приложений в кластере и отображает полный отчет, также имеющий цветовую кодировку (зеленый - ОК, красный - Ошибка). Итак, взглянув на эту страницу, мы точно знаем, что не так в кластере, если есть проблема.

Тем не менее, страница «Здоровье администратора» также имеет вторую цель. Это веб-сервис, который называется Pingdom. Если кластер исправен, эта страница возвращает HTTP-код 200, а если есть хотя бы одна проблема, он возвращает 500. Мы используем URL-адрес страницы здоровья в Pingdom, которая отслеживает эту страницу раз в минуту. Всякий раз, когда возникает проблема с какой-либо службой в кластере, StatusController возвращает 500 Pingdom и отправляет уведомление тому, кто находится на связи. Когда мы получаем уведомление, мы просматриваем страницу «Здоровье» для получения информации о том, что не так с кластером.

Мы разработали этот подход много лет назад, и с тех пор он верно служит нам.

...