Skip to content

Latest commit

 

History

History
50 lines (33 loc) · 3.33 KB

README.md

File metadata and controls

50 lines (33 loc) · 3.33 KB

NettyHttpServer

Реализован http-сервер на фреймворке netty версии 4.0.0.CR9 с параметрами:

EventLoopGroup bossGroup = new NioEventLoopGroup(max_connections); EventLoopGroup workerGroup = new NioEventLoopGroup(max_streams);

, где установлены значения max_connections = 5, max_streams = 10 То есть открывается до 5 входящих соединений, а каждом до 10 отдельных потоков, отвечающих за трафик.

Приложение собирается Maven'ом.

Детали имплементации:

  1. Запрос http://127.0.0.1:8080/hello возвращает "Hello World" с 10-секундной задержкой. В ответ на запрос возвращается html файл с текстом "Hello World" (также можно возвращать простой текст).

  2. Запрос на http://127.0.0.1:8080/redirect?url= переадресует на путь, указанный в параметре url. Реализовано при помощи отправки нового объекта Response (new DefaultFullHttpResponse) с соответствующим заголовком HttpHeaders.Names.LOCATION

  3. По запросу на http://127.0.0.1:8080/status выдается статистика. Скриншоты приведены ниже. Создана таблица на БД MySQL. При помощи коннектора mysql-connector-java-5.1.34 sql запросами делаются необходимые выборки из БД, добавляются новые записи и т.д. За это отвечает отдельный класс StatusHandler. При помощи библиотеки RenderSnake 1.8 формируется html файл status.html и с Response'ом возвращается клиенту.

  4. Запрос на любую другую страницу вернет файл 404.html

  5. Скриншоты

      • скриншоты как выглядят станицы /status в рабочем приложении:

Alt text Alt text Alt text

    • скриншот результата выполнения команды ab – c 100 – n 10000 http://somedomain/status

Команду ab с указанными параметрами успешно выполнить не удалось. Предполагаю, что это связано с конфигурацией домашнего ПК или неидеальной настройкой сервера на netty. Успешно была выполнена команда с несколько упрощенными параметрами:

Alt text

    • еще один скриншот станицы /status, но уже после выполнение команды ab из предыдущего пункта

Alt text Alt text Alt text