Вышло крупное обновление для NServer — минималистичного Python-фреймворка, который позволяет легко создавать кастомные DNS-серверы с помощью понятного API.


​
Что нового:

Главная фишка версии 3.2.0 — полноценная многопоточность. Раньше всё работало в один поток, и если серверу нужно было сделать тяжелый блокирующий запрос (например, сходить в базу данных на 10–100 мс), пропускная способность моментально падала с 10 000 до 25 запросов в секунду.
​
Теперь архитектура разделена на три пула потоков:
1. Для приёма входящих DNS-запросов.
2. Настраиваемое количество воркеров для обработки логики.
​3. Поток для отправки ответов.
​
По словам автора, с новой архитектурой сервер уверенно держит от 300 до 1200 запросов в секунду даже при наличии тех самых блокирующих задержек в коде. В синтетических TCP-бенчмарках NServer даже обошёл популярный CoreDNS (когда тот используется как балансировщик) и некоторые серверы, написанные на C.

Полный ченжлог: https://nhairs.github.io/nserver/latest/changelog/

@zen_of_python (теперь в VK и Max)
Просмотры: 341
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти