Skip to content

A3a3e1/NettyHttpServer

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published