preface

JSR 51 was designed so that Java could provide non-blocking. Asynchronous 10 class library with elastic shrinkage ability. Thus ending Java’s disadvantage in the business performance server world. However. For quite a long time. NIO programming in Java has not caught on for the following reasons:

  1. Most high-performance servers. It is dominated by C and C++ languages that don’t care about JDK NIO because they can directly leverage the OS’s asynchronous 10 capabilities.
  2. The mobile Internet has yet to take off. Large-scale java-based distributed systems are rare. Many small and medium sized applications are not very keen on asynchronous 10;
  3. High performance, high reliability areas, such as banking. Securities. Telecom is still dominated by C++. Java acted as a handyman, and NIO was temporarily out of use;
  4. The leading J2EE servers at the time were almost all built on synchronous resistance 10. Such as servlet.tomeat, etc. Since they are widely used, if these containers do not support NIO, users are limited in their ability to build asynchronous stacks independently;
  5. Asynchronous NIO programming has a higher threshold. Developing and maintaining a NIO-based protocol stack is a dream for many small and medium sized companies;
  6. NIO die frame is not mature in the industry. Difficult to use commercially;
  7. Domestic RESEARCH and development circles are unfamiliar with and lack of understanding of NIO. Insufficient attention;

For several reasons above: Random large-scale distributed systems. With the rise of big data and streaming computing frameworks, building these systems based on Java has become mainstream, and NIO programming and NIO frameworks have been widely commercialized during this period. In the domain of the Internet, the distributed service framework in the network dubo.RocketMQ. Avro, the basic serialization and communication framework for big data, and many open source software have started to use Netty to build high performance.

According to current information, Netty has seen large-scale commercial use in the following territories:

  1. Internet city;
  2. Telecommunication city;
  3. Big data;
  4. Banking, securities and other financial fields;
  5. Game industry;
  6. Power and other enterprises market

This document is suitable for architects, designers, software development engineers, testers and other interested in Java NIO framework, Java communication, I believe that through learning this book, you can be familiar with and master Netty this excellent asynchronous communication framework, to achieve the construction of highly available distributed system.


The definitive guide to Netty

Based on article

  • Understand the Evolution of Java I/O
  • Introduction to the NIO

Introductory article

  • Familiar with basic Netty applications
  • Solution to TCP sticky/unpack problem
  • Familiar with delimiter and fixed-length decoder applications

The intermediate piece

  • Master coding and decoding techniques
  • Java serialization
  • Google Protobuf codec
  • JBoss Marsalling codec

Senior post

  • HTTP protocol development application
  • WebSocket protocol development
  • UDP protocol development
  • The file transfer
  • Private stack development

Source Code Analysis

  • ByteBurf and related helper classes
  • The Channel and the Unsafe
  • ChanelPipeline and ChannelHandler
  • EventLoop and Event oopGroup
  • The Future and Promise

Architecture and Industry Applications

  • Application of Java multithreaded programming in Netty
  • Netty architecture analysis
  • Netty industry application
  • Netty’s future outlook


directory