本文参考 本篇文章是对《Netty In Action》一书第十二章"WebSocket"的学习摘记,主要内容为开发一个基于广播的WEB聊天室 聊天室工作过程 请求的 URL 以/ws 结尾时,通过升级握手的机制把该协议升级为 WebSocket,之后客户端发送一个消息,这个消息会被广播到所有其它连... ...
分类:
Web程序 时间:
2020-04-12 22:45:29
阅读次数:
94
Netty 中的 handler 和 ChannelPipeline 分析 ...
分类:
Web程序 时间:
2020-04-12 18:39:10
阅读次数:
67
我们通过一个简单的Netty代码了解到了Netty中的核心组件,这一篇我们将围绕核心组件中的Channel来展开学习。 Channel的简介 Channel代表着与网络套接字或者能够进行IO操作(read、write、connect或者bind)的组件的联系,一个Channel向用户提供了如下内容: ...
分类:
Web程序 时间:
2020-04-11 09:49:28
阅读次数:
78
Netty是Trustin Lee在2004年开发的一款高性能的网络应用程序框架。相比于JDK自带的NIO,Netty做了相当多的增强,且隔离了jdk nio的实现细节,API也比较友好,还支持流量整形等高级特性。在我们常见的一些开源项目中已经普遍的应用到了Netty,比如Dubbo、Elastic ...
分类:
Web程序 时间:
2020-04-11 09:28:15
阅读次数:
96
上一篇我们通过一个简单的Netty代码了解到了Netty中的核心组件,这一篇我们将围绕核心组件中的Channel来展开学习。 Channel的简介 Channel代表着与网络套接字或者能够进行IO操作(read、write、connect或者bind)的组件的联系,一个Channel向用户提供了如下 ...
分类:
Web程序 时间:
2020-04-10 22:50:49
阅读次数:
162
前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性 ...
分类:
编程语言 时间:
2020-04-08 20:50:25
阅读次数:
100
Netty 异步事件驱动的网络应用程序框架。 特点 高并发 基于NIO开发的网络通信框架 传输快 零拷贝 Netty的接受和发送bytebuffer使用堆外直接内存进行socket读写,传统堆内存进行socket读写,JVM将堆内存buffer拷贝到内存,然后写入socket。相比之下,消息在发送多 ...
分类:
Web程序 时间:
2020-04-07 22:30:42
阅读次数:
195
目录 JDK的Atomic原子操作类实现机制 通过JDK源码,品AtomicXXXFieldUpdater原子更新器及其优势 品Netty源码,学习原子更新的最佳实现方式 本篇文章大概3300字,阅读时间大约15分钟 如果仔细阅读过Netty的线程调度模型的源码,或者NIO线程对象及其线程池的创建源 ...
分类:
其他好文 时间:
2020-04-07 09:33:54
阅读次数:
92
关闭连接:本质是取消 Channel 在 Selelctor 的注册 [toc] __Netty 系列目录()__ 1. 主线分析 1.1 主线 关闭连接分两种:主动关闭(正常关闭)和被动关闭(异常关闭)。 多路复用器(Selector)接收到 OP_READ 事件 处理 OP_READ 事件:Ni ...
分类:
其他好文 时间:
2020-04-06 21:06:50
阅读次数:
128
处理业务:事件是如何在 pipeline 中传播的 [toc] __Netty 系列目录()__ 在上一节 "接收数据:自适应缓冲区和连接读是为了解决什么问题" 中,我们知道 NioEventLoop 不断的轮询,接收 OP_READ 事件;然后将读取到的数据通过 pipeline.fireChan ...
分类:
其他好文 时间:
2020-04-06 12:03:05
阅读次数:
122