Netty、Redis、ZooKeeper高并发实战
Alen_0076
好好学习,天天向上
展开
-
七、pipeLine概述
带着下面三个问题,我们开始学习Netty的pipeline:netty是如何判断ChanneHandler类型?对于ChannelHandler的添加遵循什么样的顺序?用户手动触发事件传播,不同的触发方式有什么区别?pipeline的初始化pipeline在创建Channel的时候被创建在前面几节可以看到在服务端和客户端创建Channel的时候会创建Pipeline: pr...原创 2019-12-29 22:29:55 · 304 阅读 · 0 评论 -
六、Netty新连接介入
121原创 2019-12-22 21:18:44 · 199 阅读 · 0 评论 -
五、NioEventLoop启动
NioEventLoop执行概述:1.何时被启动当AbstractChannel.register()方法被执行时,该方法下有这样一段代码: if (eventLoop.inEventLoop()) { register0(promise); } else { try { ...原创 2019-12-20 21:26:17 · 179 阅读 · 0 评论 -
四、Netty简单案例实践及服务端启动流程
首先来看一个简单的Netty服务器和客户端通讯的例子服务器代码如下:public class SimpleNettyServer { public static void main(String[] args) { new SimpleNettyServer(8878).runServer(); } private final int serve...原创 2019-12-17 23:43:47 · 386 阅读 · 0 评论 -
二、Java NIO通信基础
JavaNIO属于第三种模型--IO多路复用模型,主要有三个核心组件组成:Channel通道:在NIO中,同一个网络连接使用一个通道表示,所有的NIO的IO操作都是从这个通道开始的。一个通道类似于OIO中的两个流的结合体,既可以从通道中读取,也可以向通道中写入。 Buffer缓冲区:应用程序与通道的主要交互操作就是数据的读写,通道的读取和写入就是将数据与缓冲区的读取和写入。 Selec...原创 2019-12-05 23:27:22 · 209 阅读 · 0 评论 -
三、Reactor反应器模式
在OIO模型中,最初的程序设计是监听端口是否有连接,如果有就调用一个函数去处理。这个模式的最大的问题就是,前面的函数没有处理完,会导致后来的连接无法被接受,于是后面的请求都会被阻塞住,服务器的吞吐量被极大的限制。后来采用了ConnectionPerThread(一个线程处理一个连接)模式。解决了前面的新连接被严重阻塞的问题。但是对于大量的连接,需要耗费大量的线程资源。并且线...原创 2019-12-09 21:24:57 · 274 阅读 · 0 评论 -
一、 IO 五种模型
IO读写的基础原理:用户程序进行IO的读写依赖于底层的IO读写,涉及到两个缓冲区内核缓冲区和进程缓冲区。缓冲区的目的:减少频换的与设备之间的物理交换。外部设备的直接读写涉及操作系统的中断,发生中断时需要保存之前的进程数据和状态等信息,而结束中断后还需要恢复,为了减少底层系统的时间、性能损耗,出现了内存缓冲区。应用在read系统调用是,仅仅把数据从内核缓冲区复制到应用缓冲区(进程缓冲区)...原创 2019-11-30 22:02:29 · 254 阅读 · 0 评论