Netty
文章平均质量分 65
九八年的尾巴
一个愿意分享和倾听的年轻人
展开
-
Netty实战:Echo服务之Netty项目搭建服务端以及客户端编写实战
什么是Echo服务?就是回写应答服务,客户端发送什么数据,服务端就响应什么数据什么作用呢?检测调试对应的服务 压测网络编程模型Step1:项目创建选择MavenStep2:外层pom引入依赖线程组 启动类 处理器的类名都是有相对意义的 你去看Netty源码也是一样的Step1:Server服务端import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty原创 2021-02-10 22:17:39 · 217 阅读 · 2 评论 -
Netty线程模型三种Reactor模型讲解以及Netty为什么使用NIO而不是AIO讲解
设计模式-Reactor模型(反应器设计模式)是一种基于事件驱动的设计模式,在事件驱动的应用中,将一个或多个客户的服务请求分离(demultiplex)和调度(dispatch)给应用程序。在事件驱动的应用中,同步地、有序地处理同时接收的多个服务请求 一般出现在高并发系统中,比如Netty,Redis等优点1)响应快,不会因为单个同步而阻塞,虽然Reactor本身依然是同步的2)编程相对简单,最大程度的避免复杂的多线程及同步问题,并且避免了多线程/进程的切换开销3)可扩展性,可以方便的通过增加Re原创 2021-02-08 17:16:47 · 309 阅读 · 0 评论 -
IO多路复用技术select、poll、Epoll讲解
什么是IO多路复用:I/O多路复用,I/O是指网络I/O,多路指多个TCP连接(即socket或者channel),复用是指复用一个或几个线程。简单来说:就是使用一个或者几个线程处理多个TCP连接最大优势是减少系统开销,不必创建过多的进程/线程,也不必维护这些进程/线程select:基本原理:监视文件3类描述符:writefds、readfds、和exceptfds,调用后select函数会阻塞住,等有数据 可度、可写、出异常或者超时就会返回,select函数正常返回后,通过遍历fdset整个数原创 2021-02-07 21:16:16 · 159 阅读 · 2 评论 -
(BAT必会知识)Linux网络编程中五种IO模型讲解
IO操作分两步:发起IO请求等待数据准备,实际IO操作(洗衣服,晾衣服)同步需要主动读写数据,在读写数据的过程中还是会堵塞(好比晾衣服堵塞了你)异步仅仅需要I/O操作完毕的通知。并不主动读写数据,由操作系统内核完毕数据的读写(机器人帮你晾衣服)五种IO的模型:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO和异步IO前四种都是同步IO,因为在内核数据copy到用户空间时都是阻塞的权威:RFC标准或数据《UNIX Network Programming》中文《UNIX网络编程-卷-》第六章 推荐去看原创 2021-02-07 20:30:41 · 150 阅读 · 0 评论 -
什么是阻塞非阻塞,什么是同步异步?
洗衣机洗衣服例子无论阻塞式IO还是非阻塞式IO,都是同步IO模型同步阻塞:你把衣服都到洗衣机洗,然后看着洗衣机洗碗,洗好后再去晾衣服(你就干等,啥都不做,堵塞在那)但你要的结果只是晾衣服,你等待的这个过程就是阻塞同步非阻塞:你把衣服丢到洗衣机洗,然后可以去做其它事,比如玩游戏看电视之类的,但你要定时去卫生间看看洗衣机有没有洗完,洗完后再去晾衣服异步阻塞:把衣服丢到洗衣机洗,然后看着洗衣机洗完,再去晾(先说一下,生活中你会这样么?所以说几乎没有这个情况,没这个说法,可以忽略)用异步就不会出现阻塞这种原创 2021-02-07 17:28:54 · 171 阅读 · 0 评论 -
Java的IO演进例实以及使用JDK自带的BIO编写BioServer服务端以及BioClient客户端分析通信优缺点示例
使用jdk自带的Bio编写一个同一时间服务一个客户端请求过来服务返回对应的时间戳,每个请求都分一个线程Step1:新建java项目选取模板Step2:创建Server服务端public class BioServer { //定义服务端端口号 private static final int PORT = 8080; public static void main(String[] args) throws IOException { //建立So原创 2021-02-07 16:54:38 · 285 阅读 · 0 评论