Netty производительность - PullRequest
       9

Netty производительность

15 голосов
/ 28 февраля 2011

Есть ли реальная разница в производительности, когда вы используете Netty, и если вы не используете его в приложении с десятками тысяч соединений?

Ответы [ 6 ]

21 голосов
/ 28 февраля 2011

На самом деле, хорошей причиной для использования Netty является повышение надежности соединений и предоставление вам возможности кодировать, что делает соединение, а не беспокоиться о деталях всего, что может пойти не так.(Часто приходит только путем поиска трудного пути)

Netty может помочь вам масштабировать более 1К соединений.Однако, если вам не нужно так много соединений, вы можете обнаружить, что простой код работает лучше всего.

12 голосов
/ 28 февраля 2011

Не совсем, как заметил Питер.

Однако я обнаружил, что Netty также предлагает очень хороший API для построения сервера. Несмотря на то, что API-интерфейс немного изучен, он хорошо сделан, и создание нового сервера может быть тривиальным. Это также довольно эффективный код, поэтому у вас было бы очень мало кода, если бы у вас был простой протокол и реализация.

Это ТОЛЬКО если вы создаете сервер для чего-то отличного от HTTP. Если вы говорите о веб-приложении HTTP, переходите к проверенному истине. Apache для простых HTML-страниц, Tomcat, если вам нужны сервлеты.

6 голосов
/ 04 июня 2011

HTTP веб-приложение не обязательно находится в apache httpd и tomcat:

  1. Проверьте this и this , чтобы увидеть, насколько превосходят nginx по сравнению с apachehttpd
  2. Нажмите здесь , чтобы увидеть, как платформа How Play! (на основе Netty) превосходит те, что основаны на Tomcat / Servlet
3 голосов
/ 17 мая 2012

Нетти очень быстр, особенно с большим количеством соединений.

По моему опыту:

  • Это более масштабируемо, чем стандартный Java IO. В частности, старые синхронные пакеты Java IO требуют, чтобы вы связывали один поток на соединение. Это может стать проблемой с десятками тысяч соединений!
  • Это примерно та же скорость, что и вы, если бы вы написали собственный сетевой код с использованием Java NIO , но на 1010 * много проще просто использовать Netty напрямую, а не переходить на этот уровень. маршрут.
1 голос
/ 03 июля 2014

Twitter использовал Netty в своей поисковой системе:

Ссылка: Поиск в Твиттере теперь в 3 раза быстрее

0 голосов
/ 30 октября 2013

Фактически, используя Tomcat NIO, вы можете получить до 16 000 одновременных подключений; Имейте в виду, это одновременные соединения на одной машине. Это было проверено как сравнение с Jetty, которое превысило 4000, когда они давали им все больше и больше памяти. (http://www.javalobby.org/java/forums/t92965.html)

И, используя инфраструктуру «соглашение поверх конфигурации», такую ​​как Grails со встроенной функциональностью REST (или простые плагины, такие как RestRPC), вы можете легко создавать API, веб-хуки и т. Д. За считанные секунды.

У меня также есть больше возможностей с помощью плагина Spring Security относительно того, кто может получить доступ к тому, что API-вызов через какой IP-адрес или какую роль, если я хочу.

Netty имеет ограничения, которые множество плагинов Grails могут расширить за пределы использования Tomcat NIO.

...