Upgrade to Pro — share decks privately, control downloads, hide ads and more …

State of Netty (2016)

Trustin Lee
February 16, 2016

State of Netty (2016)

The slides for my talk at LINE Developer Meetup in Fukuoka on February 16, 2016

An older version with a video: https://speakerdeck.com/trustin/state-of-netty-2014

Trustin Lee

February 16, 2016
Tweet

More Decks by Trustin Lee

Other Decks in Programming

Transcript

  1. Netty is … Java framework Simplifies socket client · server

    development Fast yet maintainable Asynchronous Event-driven
  2. Many organic. Very forks. Wow! 180+ people in repo history

    29th in most starred Java · Android project 20th in most forked Java · Android project
  3. What do people use it for? 1 Web services Instant

    messaging Multiplayer games Storage · Database High frequency trading Media streaming 1 http://netty.io/wiki/adopters.html http://netty.io/testimonials
  4. Long history short 2001.12.16. First release 1 2004.06.07. Major revision

    2 2004.09.28. Moving effort to Apache MINA 3 2006.10.27. Apache MINA becomes a TLP 4 2008.06.11. Moving effort back again 5 1 http://t.motd.kr/ko/archives/1930 2 http://www.theserverside.com/news/thread.tss?thread_id=26416 3 http://t.motd.kr/ko/archives/1693 4 http://t.motd.kr/ko/archives/1560 5 http://t.motd.kr/ko/archives/1502
  5. Since then … 3.0.0 in October 2008 HTTP WebSocket SPDY

    2 & 3 OpenSSL … 3.9.2 in June 2014
  6. What we learned in 3 Object allocations are expensive. Memory

    bandwidth Small garbage is garbage anyway. Some constructs are generally useful. Byte buffers Listenable futures Ill-defined thread model is painful. SSL handler
  7. 4.0 1 Event objects → Event methods Reference-counted buffers +

    pool Modularization Well-defined thread model Improved API user experience /dev/epoll · OpenSSL 1 https://blog.twitter.com/2013/netty-4-at-twitter-reduced-gc-overhead http://netty.io/wiki/new-and-noteworthy-in-4.0.html
  8. 4.1 1 Protocols - Memcache · DNS · MQTT ·

    STOMP · HAProxy Streamed XML · JSON Asynchronous DNS lookup SOCKS · HTTP proxy support More flexible thread model Android support 1 Currently at release candidate - http://netty.io/wiki/new-and-noteworthy-in-4.1.html
  9. Beyond 4.1 Protocols - Redis · MySQL · PostgreSQL …

    kqueue · IOCP … Metrics Android testsuite Java 8 lambda friendliness Better user guide · Javadoc
  10. Beyond 4.1 (Cont’d) Accurate backpressure User-space TCP · UDP stack

    Non-blocking I/O friendly parser generator Investment in alternative system languages