Netpoll — это высокопроизводительный неблокирующий сетевой фреймворк для ввода-вывода, разработанный компанией ByteDance и ориентированный на сценарии RPC.
RPC обычно требует интенсивной обработки логики и поэтому не может обрабатывать ввод-вывод последовательно. Однако стандартная библиотека Go net разработана для блокирующих API ввода-вывода. Поэтому в рамках RPC можно использовать только дизайн One Conn One Goroutine. Это приводит к большим затратам на переключение контекста из-за большого количества горутин при высокой параллельности. Кроме того, net.Conn не имеет API для проверки состояния соединения, поэтому сложно создать эффективный пул соединений для RPC-фреймворка, поскольку в пуле может быть большое количество разорванных соединений.
С другой стороны, в сообществе открытого исходного кода в настоящее время не хватает сетевых библиотек Go, ориентированных на сценарии RPC. Подобные репозитории, такие как evio, gnet и т. д., ориентированы на такие сценарии, как Redis, HAProxy.
Но теперь появился Netpoll, который решает вышеуказанные проблемы. Он вдохновлён дизайном evio и netty, обладает отличной производительностью и больше подходит для микросервисной архитектуры. Также Netpoll предоставляет ряд функций, и его рекомендуется использовать вместо net в некоторых сценариях RPC.
На основе Netpoll мы разработали RPC-фреймворк Kitex и HTTP-фреймворк Hertz, оба с лучшей в отрасли производительностью.
Примеры показывают, как построить клиент и сервер RPC с помощью Netpoll.
Для получения дополнительной информации см. Документ.
Уже
Будущее
Не поддерживается
Тесты должны соответствовать требованиям промышленного использования. В сценарии RPC параллелизм и тайм-аут являются необходимыми элементами поддержки.
Мы предоставляем проект netpoll-benchmark для отслеживания и сравнения производительности Netpoll и других фреймворков в различных условиях для справки.
Дополнительные тесты см. в проектах kitex-benchmark и hertz-benchmark.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )