1、服务端接收 Watcher 并存储 接收到客户端请求,处理请求判断是否需要注册 Watcher,需要的话将数据节点 的节点路径和 ServerCnxn(ServerCnxn 代表一个客户端和服务端的连接,实现 了 Watcher 的 process 接口,此时可以看成一个 Watcher 对象) ...
分类:
其他好文 时间:
2020-04-12 20:40:50
阅读次数:
75
第一章:手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊 在第一章中运用Socket和ServerSocket简单的实现了网络通信。这一章,利用BIO编程模型进行升级改造,实现群聊聊天室。 如图:当一个客户端请求进来时,接收器会为这个客户端分配一个工作线程,这个 ...
分类:
其他好文 时间:
2020-04-11 20:35:30
阅读次数:
75
最近项目中遇到了问题,会偶然出现服务端返回不是客户端请求报文的情况 经过排查后发现,是客户端的http长链接网络库,在第一次发送超时的情况下,没有断开连接,而是用此长链接继续发送, A包发送但超时未响应,然后发送B包,这时收到了A包的响应,则就会认为A包的响应为B包的响应内容,这就导致了此后的htt ...
分类:
Web程序 时间:
2020-04-08 20:52:21
阅读次数:
81
Cookie 和 Session HTTP 协议是一种 ,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。 Session 是什么 客户端请求服务端,服务端会为这次请求开辟一块 ...
分类:
其他好文 时间:
2020-04-05 09:50:21
阅读次数:
77
http是web应用协议,通常我们说的一次http事务,不外乎就是客户端请求,服务端响应,通常我们是这样去理解http一次事务的过程;其实对于web服务器来说,一个客户端访问服务端的某资源时,往往客户端的请求没有到达真正提供web服务的服务器上,就被响应了,这是为什么呢?我们知道一个WEB站点在提... ...
分类:
Web程序 时间:
2020-04-02 19:39:48
阅读次数:
88
Redis是基于单线程模型实现的,也就是Redis是使用一个线程来处理所有的客户端请求的,尽管Redis使用了非阻塞式IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是O(1)),但由于Redis是单线程执行的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段,让Redis更加高效的运行。本文我们将使用以下手段,来提升Redis的运行速度:缩短键值对的存储长度;使用lazyfr
分类:
其他好文 时间:
2020-03-27 23:15:28
阅读次数:
73
Redis是基于单线程模型实现的,也就是Redis是使用一个线程来处理所有的客户端请求的,尽管Redis使用了非阻塞式IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是O(1)),但由于Redis是单线程执行的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段,让Redis更加高效的运行。本文我们将使用以下手段,来提升Redis的运行速度:缩短键值对的存储长度;使用lazyfr
分类:
其他好文 时间:
2020-03-27 23:10:48
阅读次数:
77
1. SpringMVC执行流程 ★★★★★ Spring MVC主要由DispatcherServlet、处理器映射【找控制器】、适配器【调用控制器的方法】、控制器【业务】、视图解析器、视图组成。 (1) 客户端请求提交到 DispatcherServlet控制器。 (2) 由 Dispatche ...
分类:
编程语言 时间:
2020-03-22 01:37:33
阅读次数:
80
1、常用的Http状态码: 状态码 状态 具体描述 200 OK 客户端请求成功 400 Bad Request 客户端请求有语法错误,不能被服务器所理解 401 Unauthorized 服务器收到请求,但是拒绝提供服务 404 Not Found 请求资源部存在 500 Internal Ser ...
HDFS写数据流程 1.客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已经存在,父目录是否存在; 2.NameNode返回是否可以上传文件; 3.客户端请求一个block上传到指定的那个DataNode服务器上; 4.Nam ...
分类:
其他好文 时间:
2020-03-20 19:52:48
阅读次数:
56