随笔分类 -  Netty

讲述Netty基础、原理、进阶知识
Netty学习之实战WebSocket框架
摘要:说到WebSocket技术,其实源于服务器推送技术,在现实中很多时候需要的数据是不断变化的,比如股市数据、聊天软件,因此就需要一种客户端想要在不刷新页面的情况下实时获取到服务器端最新数据的技术,而以往的数据获取都是基于客户端主动请求,服务端返回对应数据。因此就有了服务器推送技术。 服务器推送技术主要 阅读全文
posted @ 2020-03-26 05:33 kosamino 阅读(7827) 评论(1) 推荐(0) 编辑
Netty学习之实战RPC框架
摘要:先附上GitHub地址:https://github.com/kosamino/netty-root/tree/master/ym-netty-rpc RPC的实现方式是本地通过远程代理对象调用远程服务。在互联网应用场景中,单体服务极度缺乏弹性伸缩能力,在大规模开发团队中也不便于开发管理。所以往往会 阅读全文
posted @ 2020-03-26 03:37 kosamino 阅读(593) 评论(0) 推荐(0) 编辑
Netty学习之编解码器
摘要:如果将消息看作是对于特定的应用程序具有具体含义的结构化的字节序列—它的数据。那么编码器是将消息转换为适合于传输的格式(最有可能的就是字节流);而对应的解码器则是将网络字节流转换回应用程序的消息格式。 在了解Netty编解码之前,先了解Java的编解码: 编码(Encode)称为序列化, 它将对象序列 阅读全文
posted @ 2020-03-24 15:25 kosamino 阅读(809) 评论(0) 推荐(0) 编辑
Netty学习之粘包、半包
摘要:一、什么是粘包、半包 1、粘包半包场景重现 来做这么一个测试,在Netty客户端发送数据到Netty服务端,代码如下: public void channelActive(ChannelHandlerContext ctx) throws Exception { for (int i = 0; i 阅读全文
posted @ 2020-03-23 20:18 kosamino 阅读(773) 评论(0) 推荐(0) 编辑
Netty学习之核心组件ByteBuf及API
摘要:Netty提供的ByteBuf不同于JDK中NIO的ByteBuffer,ByteBuf是netty中数据传输的容器,是Netty自己实现的,作为NIO ByteBuffer的替代品,提供了更好的API供开发者使用。相较于NIO的ByteBuffer更具有卓越的功能性和灵活性。具体NIO的ByteB 阅读全文
posted @ 2020-03-23 18:32 kosamino 阅读(1533) 评论(0) 推荐(0) 编辑
Netty学习之核心组件ChannelPipeline
摘要:ChannelPipeline 提供了ChannelHandler 链的容器,并定义了用于在该链上传播入站和出站事件流的API。ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起。 一、Channe 阅读全文
posted @ 2020-03-19 20:06 kosamino 阅读(660) 评论(0) 推荐(3) 编辑
Netty学习之核心组件(AbstractBootstrap、Bootstrap、ServerBootstrap)
摘要:Netty的核心组件的设计都很模块化,如果想要实现一个应用程序,就需要将这些组件组装到一起。Netty通过Bootstrap类,以对一个Netty应用程序进行配置(组装各个组件),并最终使它运行起来。对于客户端程序和服务器程序所使用到的Bootstrap类是不同的,后者需要使用ServerBoots 阅读全文
posted @ 2020-03-19 05:25 kosamino 阅读(1701) 评论(0) 推荐(0) 编辑
Netty学习之核心组件(EventLoop、EventLoopGroup)
摘要:一、EventLoop、EventLoopGroup概述 由下图所示,NioEventLop是EventLoop的一个具体实现,EventLoop是EventLoopGroup的一个属性,NioEventLoopGroup是EventLoopGroup的具体实现,都是基于ExecutorServic 阅读全文
posted @ 2020-03-18 05:17 kosamino 阅读(2885) 评论(0) 推荐(1) 编辑
Netty学习之Demo搭建
摘要:如下所示,我们写一个简单的Netty Demo,实现客户端与服务端进行通讯。 1、Netty 服务端启动类 /** * (1)、 初始化用于Acceptor的主"线程池"以及用于I/O工作的从"线程池"; * (2)、 初始化ServerBootstrap实例, 此实例是netty服务端应用开发的入 阅读全文
posted @ 2020-03-18 04:20 kosamino 阅读(3857) 评论(1) 推荐(2) 编辑
Netty学习之Reactor线程模型
摘要:一、什么是Reactor模型 Reactor设计模式是event-driven architecture(事件驱动)的一种实现方式。Reactor会解耦并发请求的服务并分发给对应的事件处理器来处理。 目前,许多流行的开源框架都用到了Reactor模型。如:netty、node.js等,包括java的 阅读全文
posted @ 2020-03-15 17:39 kosamino 阅读(2679) 评论(1) 推荐(0) 编辑
IO模型之NIO代码及其实践详解
摘要:一、简介 NIO我们一般认为是New I/O(也是官方的叫法),因为它是相对于老的I/O类库新增的( JDK 1.4中的java.nio.*包中引入新的Java I/O库)。但现在都称之为Non-blocking I/O,即非阻塞I/O,因为这样叫,更能体现它的特点。而下文中的NIO,不是指整个新的 阅读全文
posted @ 2019-12-12 18:12 kosamino 阅读(2107) 评论(0) 推荐(0) 编辑
7层网络以及5种Linux IO模型以及相应IO基础
摘要:一、七层网络模型 OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,它是一个七层的、抽象的模型体。 1、物理层 并不是物理媒体本身,它只是开放系统中利用物理媒体实现物理连接的功能描述和 阅读全文
posted @ 2019-12-05 05:34 kosamino 阅读(1544) 评论(1) 推荐(0) 编辑