1.什么是长链接、短链接数据库
由上能够看出,长链接能够省去较多的TCP创建和关闭的操做,减小浪费,节约时间。对于频繁请求资源的客户来讲,较适用长链接。不过这里存在一个问题,存活功能的探测周期太长,还有就是它只是探测TCP链接的存活,属于比较斯文的作法,遇到恶意的链接时,保活功能就不够使了。在长链接的应用场景下,client端通常不会主动关闭它们之间的链接,Client与server之间的链接若是一直不关闭的话,会存在一个问题,随着客户端链接愈来愈多,server迟早有扛不住的时候,这时候server端须要采起一些策略,如关闭一些长时间没有读写事件发生的链接,这样可 以免一些恶意链接致使server端服务受损;若是条件再容许就能够以客户端机器为颗粒度,限制每一个客户端的最大长链接数,这样能够彻底避免某个蛋疼的客户端连累后端服务。后端
短链接对于服务器来讲管理较为简单,存在的链接都是有用的链接,不须要额外的控制手段。但若是客户请求频繁,将在TCP的创建和关闭操做上浪费时间和带宽。浏览器
长链接和短链接的产生在于client和server采起的关闭策略,具体的应用场景采用具体的策略,没有十全十美的选择,只有合适的选择。服务器
3.何时用长链接、短链接?并发
长链接多用于操做频繁,点对点的通信,并且链接数不能太多情的况。每一个TCP链接都须要三次握手,这须要时间,若是每一个操做都是长链接,再操做的话处理速度会下降不少,因此每一个操做完后都不断开,次处理时直接发送数据包就OK了,不用创建TCP链接。例如:数据库的链接用长链接,若是用短链接频繁的通讯会形成socket错误,并且频繁的socket建立也是对资源的浪费。socket
像WEB网站的http服务通常都用短链接,由于长链接对于服务端来讲会耗费必定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的链接用短链接会更省一些资源。若是用长链接,并且同时有上万用户,若是每一个用户都占用一个链接的话,那可想而知。因此并发量大,但每一个用户无需频繁操做状况下用短链接最好。网站