![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程篇
文章平均质量分 93
网络编程
半桶水的码农
这个作者很懒,什么都没留下…
展开
-
WebSocket 简单实战
前言这个简单实战案例主要目的是让大家了解websocket的一些简单使用.另外使用stomp方式的:《Springboot 整合 WebSocket ,使用STOMP协议 ,前后端整合实战 (一)》https://blog.csdn.net/qq_35387940/article/details/119817167《Springboot 整合 WebSocket ,使用STOMP协议+Redis 解决负载场景问题(二)》https://blog.csdn.net/qq_353879..翻译 2021-10-18 14:35:45 · 908 阅读 · 0 评论 -
Netty基础介绍
目录1、什么是Netty2、Netty 的特点3、Netty 的优势4、Netty 的应用场景5、Netty 高性能6、IO、NIO和AIO的区别7、Netty的线程模型8、TCP 粘包/拆包的原因及解决方法9、什么是 Netty 的零拷贝10、Netty 中有哪些重要组件11、Netty 发送消息有几种方式12、默认情况 Netty 起多少线程?何时启动13、了解哪几种序列化协议14、如何选择序列化协议15、Netty 支持哪些心跳类型设置1翻译 2021-04-27 16:43:04 · 1094 阅读 · 0 评论 -
网络分层及RPC、HTTP区别
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。一、OSI(Op...翻译 2021-04-26 18:31:40 · 1135 阅读 · 0 评论 -
Socket三次握手及粘包半包
目录一、三次握手过程理解二、四次挥手过程理解三、面试题四、TCP粘包半包1、粘包和半包2、解决方案1. 改成短连接2. 封装成帧3、Netty 中的实现先来张图!序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据.原创 2021-04-26 18:00:08 · 696 阅读 · 0 评论 -
零拷贝
目录一、传统IO1、用户态、内核态2、DMA拷贝二、零拷贝1、mmap+write2、sendfile3、sendfile+DMA Scatter/Gather三、应用场景1、消息队列2、NIO3、Netty四、总结平时在面试中你肯定会经常碰见的问题就是:RocketMQ为什么快?Kafka为什么快?什么是mmap?这一类的问题都逃不过的一个点就是零拷贝,虽然还有一些其他的原因,但是今天我们的话题主要就是零拷贝。一、传统IO在开始谈零拷贝原创 2021-04-26 09:48:26 · 207 阅读 · 0 评论 -
select,poll,epoll对比及epoll空轮询
目录一、select,poll,epoll对比1.select2.poll3.epoll4.总结二、epoll空轮询bug及处理1.Selector BUG出现的原因2.Netty的解决办法一、select,poll,epoll对比1.select支持一个进程所能打开的最大连接数单个进程所能打开的最大连接数有FD_SETSIZE宏定义,其大小是32个整数的大小(在32位的机器上,大小就是3232,同理64位机器上FD_SETSIZE为3264),当然我们可以原创 2021-04-23 17:27:44 · 735 阅读 · 0 评论 -
NIO三大组件
目录一、Buffer缓冲区二、Channel通道1.Channel和Stream的区别2.Socketchannel3.ServerSocketChannel三、Selector选择器四、NIO三大件的工作流程提到NIO网络编程,就不得不提一下NIO中的三大组件:Buffer、Channel、Selector,JDK源码开发者在这里用了很通用形象的三个词语,去分别赋予三个类的抽象含义,Buffer即缓冲,Channel即管道,Selector为选择器,因为底层实现机制的复杂原创 2021-04-23 13:00:15 · 1842 阅读 · 0 评论