Skip to content

demo project for demonstration of rest api on netty

Notifications You must be signed in to change notification settings

izebit/netty-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nettyDemo

REST проект с использованием netty

Постановка задачи

Дана пирамида:

alt tag

Каждый элемент имеет массу 50 кг. Нужно узнать по номеру элемента и номеру уровня какую нагрузку он испытывает.

Интерфейс

GET /weight?level={level}&index={index}
GET /weight/{level}/{index}

где:
level[int,level>=0,index<level] номер уровня
index[int,index>=0] порядковый номер элемента

Запуск программы

java -jar my_application.jar <адрес> <порт>

Реализация

Алгоритм

Происходит валидация входящих параметров, затем пытаемся найти значение в кэше, если его там не оказывается, то происходит вычисление. Вычисление осуществляется с использование динамического программирования. Массив содержит две строки, значения предыдущего уровня и текущего.
Для предотвращения ситуаций saturated outbound на исходящий и входящий трафик установлено ограничение в 100 кб/сек на одно соединение.

Технологии и библиотеки

  • java se 8
  • framework netty
  • spring di
  • junit
  • log4j2
  • maven
  • caffeine (реализация кэша)

About

demo project for demonstration of rest api on netty

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages