网络编程
文章平均质量分 94
Men-DD
这个作者很懒,什么都没留下…
展开
-
网络编程(五):提问
Netty是如何解决JDK中的Selector BUG的?Selector BUG:JDK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU 100%。官方声称在JDK1.6版本的update18修复了该问题,但是直到JDK1.7版本该问题仍旧存在,只不过该BUG发生概率降低了一些而已,它并没有被根本解决,甚至JDK1.8的131版本中依然存在。JDK官方认为这是Linux Kernel 版本的bug,可以参见:https://bugs.java.com原创 2022-05-06 10:51:27 · 183 阅读 · 0 评论 -
网络编程(四):Netty
简述基于Netty的知名项目数据库:Cassandra大数据处理:Spark、Hadoop消息中间件:RocketMQ检索:Elasticsearch框架:gRPC、Apache Dubbo、Spring5 WebFlux分布式协调器:ZookeeperNetty的优势API使用简单,开发门槛低;功能强大,预置了多种编解码功能,支持多种主流协议;定制能力强,可以通过ChannelHandler对通信框架进行灵活地扩展;性能高,通过与其他业界主流的NIO框架对比,Netty的综合性能原创 2022-04-28 11:38:56 · 1932 阅读 · 1 评论 -
网络编程(三):Linux 网络IO模型、select、pool、epoll 内核设计
Linux网络IO模型同步和异步,阻塞和非阻塞同步和异步关注的是调用方是否主动获取结果同步: 同步的意思就是调用方需要主动等待结果的返回异步: 异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知,回调函数等。阻塞和非阻塞主要关注的是等待结果返回调用方的状态阻塞: 是指结果返回之前,当前线程被挂起,不做任何事非阻塞: 是指结果在返回之前,线程可以做一些其他事,不会被挂起。两者的组合同步阻塞: 同步阻塞基本也是编程中最常见的模型,打个比方你原创 2022-04-27 12:52:47 · 826 阅读 · 0 评论 -
网络编程(二):BIO、NIO、Reactor模式、直接内存、零拷贝理解
什么是Socket?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,一般由操作系统提供。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议处理和通信缓存管理等等都隐藏在Socket接口后面,对用户来说,使用一组简单的接口就能进行网络应用编程,让Socket去组织数据,以符合指定的协议。主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接。客户端连接上一个服务端,就会在客户端中产生一个socket接口实例,服务端每接受一个原创 2022-04-25 18:01:32 · 1600 阅读 · 0 评论 -
网络编程(一):网络模型 & TCP 三次握手四次挥手 & UDP & UDT & QUIC
OSI七层模型开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)OSI采用了分层的结构化技术,共分七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP模型OSI模型比较复杂且学术化,所以我们实际使用的TCP/IP模型,分5层:物理层、数据链路层(也有TCP/IP模型将物理层、数据链路层合称为网络接口层,与之对应的,协议就被称为TCP/IP四层协议模型)、网络层、传输层、应用层TCP/IP网络传输中的数据原创 2022-04-24 17:50:17 · 3126 阅读 · 0 评论