Skip to content

time2die/jPingService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 

Repository files navigation

jPingService

Требуется реализовать микросервис мониторинга HTTP-приложений.

Микросервис предполагает следующую схему действия: клиент передает адрес приложения, работоспособность которого требуется проверить (хост/ip-адрес, порт, путь), микросервис генерирует ответ об успешном принятии запроса, затем асинхронно пытается осуществить GET-запрос по указанному адресу и записывает результат в базу данных. Впоследствие клиент может запросить статус того или иного приложения, и микросервис должен вернуть ему результат последней проверки приложения (или 404, если таковой отсутствует).

Пример обмена данными:

POST /api/v1/application-check HTTP/1.1

{
    "host": "192.168.0.1",
    "port": 80,
    "path": "/ping"
}

->

HTTP/1.1 201 Accepted

GET /api/v1/application-status/192.168.0.1/80/%2Fping HTTP/1.1

->

HTTP/1.1 200 OK

{
    "status": 200,
    "reason": "OK",
    "response": "{\"ping\":\"pong\"}",
    "date": "2015-10-15 12:00:00"
}

Требования к системе:

  • Система должна беспроблемно выдерживать большие нагрузки: корректно отрабатывать большее количество запросов в секунду, нежели способна проверить приложений. В любом случае, когда есть подозрение на то, что система может упасть в результате принятия операции, лучше возвращать 503, нежели принимать запрос в обработку.
  • В случае, если система корректно приняла запрос, она должна осуществить переданную проверку в любых условиях, даже если машина была перезагружена сразу после принятия запроса.
  • От системы не требуется выполнять проверку мгновенно или синхронно. Клиент, запросивший проверку, должен быть готов к тому, что результаты проверки появятся не сразу.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages