即使你了解了Java NIO非阻塞功能的工作(怎么样SelectorChannel, Buffer等等),设计一个无阻塞服务器仍然很难。非阻塞IO包含了相比阻塞IO的要有难度。本章非阻塞服务器教程将讨论非阻塞服务器的主要挑战,并为他们描述一些潜在的解决方案。

  本教程中描述的想法是围绕Java NIO设计的。但是,我认为,只要有这样的构造,这些想法可以用其他语言重复使用Selector。据我所知,这样的结构是由底层操作系统提供的,所以很有可能您可以使用其他语言访问此操作。

非阻塞服务器 - GitHub存储库

  我创建了一个简单的概念验证概念,在本教程中提出的想法,并将其放在GitRebu存储库中,可供查看。这是GitHub信息库:

https://github.com/jjenkov/java-nio-server

非阻塞IO管道

  非阻塞IO管道是处理非阻塞IO组件的链。这包括以非阻塞方式读写IO。以下是简化的非阻塞IO管道的流程图: