php作为脚本语言,不像C++/Java那样历程常驻,所以它衔接后端的效劳都是运用短衔接。
画外音:有朋侪说,能够用C写扩大? (引荐进修:PHP视频教程)
上图是一种典范场景,站点php布置在机械A上,缓存memcache布置在机械B上,之间通太短衔接通信,历程为:
(1) php竖立tcp短衔接;
(2) 根据memcache协定发送数据;
(3) 吸收memcache返回的数据;
(4) php封闭tcp短衔接;
在流量小时,上述历程没有任何问题,当网站流量非常大的情况下,短衔接可能会成为机能瓶颈,有什么优化方法吗?
画外音:竖立衔接,烧毁衔接很耗时。
话锋一转,什么是UNIX Domain Socket?
UNIX Domain Socket是一种IPC机制,它不须要经由收集协定栈,不须要打包拆包、盘算校验和、保护序号和应对等,只是将运用层数据从一个历程拷贝到另一个历程。
画外音:IPC, Inter-Process Communication, 历程间通信。
它能够用于统一台主机上两个没有亲缘关联的历程,并且是全双工的,供应可靠音讯通报(音讯不丧失、不反复、不紊乱)的IPC机制。
画外音:亲缘关联是指,父子历程或许兄弟历程这类“特别的”历程关联。
能够看到,UNIX Domain Socket的效力会远高于tcp短衔接,但它只能用于统一台主机间的历程通信,而php运用和后端效劳往往是布置在差别的机械上的,此时可否利用它来举行优化呢?
优化后的浅易架构图如上:
(1) 在php运用效劳器上布置一个local-proxy;
(2) php与local-proxy之间运用UNIX Domain Socket来通信;
(3) local-proxy与后端效劳举行TCP长衔接通信;
如许就大大提升了通信效力,免除了每次要求都要举行的竖立与封闭tcp短衔接的开支
以上就是php历程属于长衔接么的细致内容,更多请关注ki4网别的相干文章!