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