php进程属于长连接么-PHP问题

资源魔 52 0
一个完好的软件零碎年夜少数状况下是由多个过程独特合作进行的,哪怕它们正在同一台效劳器上。以是,过程之间若何进行高效的通讯至关首要。

php作为剧本言语,没有像C++/Java那样过程常驻,以是它衔接后真个效劳都是应用短衔接。

画外音:有冤家说,能够用C写扩大? (保举学习:PHP视频教程)

php-39.jpg

上图是一种典型场景,站点php部署正在机械A上,缓存memcache部署正在机械B上,之间经过短衔接通讯,进程为:

(1) php建设tcp短衔接;

(2) 依照memcache协定发送数据;

(3) 接纳memcache前往的数据;

(4) php封闭tcp短衔接;

正在流量小时,上述进程不任何成绩,当网站流量十分年夜的状况下,短衔接可能会成为功能瓶颈,有甚么优化方法吗?

画外音:建设衔接,销毁衔接很耗时。

话锋一转,甚么是UNIX Domain Socket?

UNIX Domain Socket是一种IPC机制,它没有需求通过网络协定栈,没有需求打包拆包、较量争论校验以及、保护序号以及应对等,只是将使用层数据从一个过程拷贝到另外一个过程。

画外音:IPC, Inter-Process Co妹妹unication, 过程间通讯。

它能够用于同一台主机上两个不亲缘关系的过程,而且是全双工的,提供牢靠音讯通报(音讯没有失落、没有反复、没有紊乱)的IPC机制。

画外音:亲缘关系是指,父子过程或许兄弟过程这类“非凡的”过程关系。

能够看到,UNIX Domain Socket的效率会远高于tcp短衔接,但它只能用于同一台主机间的过程通信,而php使用以及后端效劳往往是部署正在没有同的机械上的,此时是否行使它来进行优化呢?

php-40.jpg

优化后的繁难架构图如上:

(1) 正在php使用效劳器上部署一个local-proxy;

(2) php与local-proxy之间应用UNIX Domain Socket来通信;

(3) local-proxy与后端效劳进行TCP长衔接通信;

这样就年夜年夜晋升了通信效率,罢黜了每一次申请都要进行的建设与封闭tcp短衔接的开支

以上就是php过程属于长衔接么的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!