随笔分类 -  Netty实战

摘要:该书出版与2017年6月,共15章,分为4部分,共272页。 本书是为想要或者正在使用Java 从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容。 本书共分为4 个部分: 第一部分详细地介绍Netty 的相关概念以及核心组件, 第二部分介绍自定义协议经常用到的编解码器, 第三部 阅读全文
posted @ 2020-06-12 00:04 lakeslove 阅读(109) 评论(0) 推荐(0)
摘要:WebSocket 协议是完全重新设计的协议,旨在为Web 上的双向数据传输问题提供一个切 实可行的解决方案,使得客户端和服务器之间可以在任意时刻传输消息,因此,这也就要求 它们异步地处理消息回执。(作为HTML5 客户端API 的一部分,大部分最新的浏览器都已经 支持了WebSocket。) 阅读全文
posted @ 2020-06-10 22:02 lakeslove 阅读(121) 评论(0) 推荐(0)
摘要:本章主要内容  通过SSL/TLS 保护Netty 应用程序  构建基于Netty 的HTTP/HTTPS 应用程序  处理空闲的连接和超时  解码基于分隔符的协议和基于长度的协议  写大型数据 Netty 的OpenSSL/SSLEngine 实现 Netty 还提供了使用OpenSSL 阅读全文
posted @ 2020-06-10 20:10 lakeslove 阅读(220) 评论(0) 推荐(0)
摘要:本章主要内容  解码器、编码器以及编解码器的概述  Netty 的编解码器类 这里有一个简单的准则:如果使用ByteToMessageDecoder 不会引入太多的复杂 性,那么请使用它;否则,请使用ReplayingDecoder。 虽然我们一直将解码器和编码器作为单独的实体讨论,但是你有时将 阅读全文
posted @ 2020-06-10 14:55 lakeslove 阅读(197) 评论(0) 推荐(0)
摘要:这里使用的try/catch块是EmbeddedChannel的一个特殊功能。如果其中一个write*方法产生了一个受检查的Exception,那么它将会被包装在一个RuntimeException中并抛出 阅读全文
posted @ 2020-06-10 12:23 lakeslove 阅读(127) 评论(0) 推荐(0)
摘要:服务器致力于使用一个父Channel 来接受 来自客户端的连接,并创建子Channel 以用于它们之间的通信;而客户端将最可能只需要一个 单独的、没有父Channel 的Channel 来用于所有的网络交互。(正如同我们将要看到的,这也 适用于无连接的传输协议,如UDP,因为它们并不是每个连接都需要 阅读全文
posted @ 2020-06-10 01:30 lakeslove 阅读(134) 评论(0) 推荐(0)
摘要:这一章需要JUC相关的知识。 事件/任务的执行顺序 事件和任务是以先进先出(FIFO)的顺序执行的。这样可以通过保证字 节内容总是按正确的顺序被处理,消除潜在的数据损坏的可能性。 我们之前已经阐明了不要阻塞当前I/O 线程的重要性。我们再以另一种方式重申一次:“永 远不要将一个长时间运行的任务放入到 阅读全文
posted @ 2020-06-09 23:26 lakeslove 阅读(186) 评论(0) 推荐(0)
摘要:6.1.1 Channel 的生命周期 Channel 的正常生命周期如图6-1 所示。当这些状态发生改变时,将会生成对应的事件。 这些事件将会被转发给ChannelPipeline 中的ChannelHandler,其可以随后对它们做出 响应。 由于SimpleChannelInboundHand 阅读全文
posted @ 2020-06-09 19:34 lakeslove 阅读(176) 评论(0) 推荐(0)
摘要:Netty 的数据处理API 通过两个组件暴露——abstract class ByteBuf 和interface ByteBufHolder。 下面是一些ByteBuf API 的优点: 它可以被用户自定义的缓冲区类型扩展; 通过内置的复合缓冲区类型实现了透明的零拷贝; 容量可以按需 阅读全文
posted @ 2020-06-08 14:21 lakeslove 阅读(166) 评论(0) 推荐(0)
摘要:OIO和NIO写法大相径庭,但netty的阻塞和非阻塞的代码基本一致, public class NettyOioServer { public void server(int port) throws Exception { final ByteBuf buf = Unpooled.unrelea 阅读全文
posted @ 2020-06-07 01:31 lakeslove 阅读(205) 评论(0) 推荐(0)
摘要:关于EventLoopGroup、EventLoop、ServerChannel、Channel之间的关系,还是没搞明白。 Channel—Socket; EventLoop—控制流、多线程处理、并发; ChannelFuture—异步通知。 channel的结构如上:我们最常用的是NioServe 阅读全文
posted @ 2020-06-06 22:10 lakeslove 阅读(167) 评论(0) 推荐(0)
摘要:BIO:同步阻塞IO NIO:同步非阻塞IO AIO:异步非阻塞IO 先弄清楚同步、异步,阻塞、非阻塞概念。 io操作分为两部分,发起io请求,和io数据读写。阻塞、非阻塞主要是针对线程发起io请求后,是否立即返回来定义的,立即返回称为非阻塞io,否则称为阻塞io。 同步、异步主要针对io数据读写来 阅读全文
posted @ 2020-06-06 18:44 lakeslove 阅读(157) 评论(0) 推荐(0)
摘要:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。 闭包包含自由(未绑定到特定对象)变量,这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包” 一 阅读全文
posted @ 2020-06-05 22:06 lakeslove 阅读(197) 评论(0) 推荐(0)
摘要:该书出版于2017年,给正在使用java从事高性能网络编程的人而写的。 该书分为4部分,15章,共272页。 第一部分详细的介绍了Netty的相关概念以及核心组件, 第二部分介绍了自定义协议经常用到的编解码器, 第三部分介绍Netty对于应用层高级协议的支持,会覆盖常见的协议及齐在实践中的应用。 第 阅读全文
posted @ 2020-06-05 17:46 lakeslove 阅读(128) 评论(0) 推荐(0)