网络编程
进哥说Java面试
这个作者很懒,什么都没留下…
展开
-
socket阻塞与非阻塞,同步与异步
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理转载 2015-01-16 21:26:39 · 748 阅读 · 0 评论 -
epoll在LT和ET模式下的读写方式
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:* EAGAIN: 再试一次* EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block* perror输出: Resource temporarily unav转载 2015-01-17 13:54:42 · 701 阅读 · 0 评论 -
The C10K problem
《The C10K problem》是分析如果编写一个服务器程序来支持上万的客户端连接的。其关注的重点是io效率,目前大规模网络程序的关键瓶颈。作者认为需要权衡利弊的要点有以下:1.单线/进程处理多个I/O的做法: 其可选的方案有 a. 不这样做。 也就是对单线程使用阻塞同步的IO(意为依靠多线/进程来处理多个IO)。 b. 使用非阻塞IO。 即以非阻塞方式启动IO,并转载 2015-01-13 10:33:38 · 756 阅读 · 0 评论 -
tcp和udp的0字节数据
网上许多博客讨论了tcp和udp的0字节数据问题,如http://blog.csdn.net/wzx19840423/article/details/66430941、tcp和udp都能发送0字节的数据包,windows下通过GetLastError查看返回值为02、tcp发送0字节的数据包后,接收方调用recv不会接收到该数据包3、udp发送0字节的数据包后,接收方调用recvfro原创 2016-04-08 15:40:29 · 2666 阅读 · 0 评论 -
深入剖析nginx平滑重启
在服务器开发过程中,难免需要重启服务加载新的代码或配置,如果能够保证server重启的过程中服务不间断,那重启对于业务的影响可以降为0。最近调研了一下nginx平滑重启,觉得很有意思,记录下来供有兴趣的同学查阅。原创 2017-07-16 20:04:48 · 10297 阅读 · 1 评论 -
Nginx最新模块—ngx_http_mirror_module分析
最近nginx官网公布了nginx1.13.4最新的ngx_http_mirror_module模块,利用mirror模块,业务可以将线上实时访问流量拷贝至其他环境,基于这些流量可以做版本发布前的预先验证,进行流量放大后的压测等等。本着兴趣笔者调研了其实现原理和使用方式,通过demo的形式展示给读者,希望能解决大家在使用过程中遇到的问题。原创 2017-08-11 10:58:36 · 5965 阅读 · 0 评论