在选择将Websocket作为我公司web应用程序背后的实时技术时,我试图确定服务器工作负载将是什么。
就我所理解的Apache内部而言,我认为在整个Websocket会话中代理与mod_proxy_wstunnel的连接时,Apache进程或线程将保持活动状态;同样的进程也会处理传统的客户机http请求吗?或者,当这些请求到达时,另一个过程会被“浪费”吗?
发布于 2016-08-31 21:03:08
这完全取决于你的web应用程序是如何设计的。您确实可以通过已建立的websocket传递“传统http请求”.或者您可以用更传统的方法处理请求。不幸的是(从系统工程师的角度来看)开发人员很懒.而且很少经过必要的努力,通过一个既定的websocket来传递大部分流量。它通常用于宣布页面上各种位的“更新”.以及将图像数据和其他任何东西拖到更典型的GET和POST上的工作。
总之..。是的..。在每个websocket的生命周期中,您将绑定一个进程.和每个请求的一个连接。然而,您可以使用连接保持生命循环相同的连接结束和结束.但这可能会影响整个页面加载时间,因为您必须等待每一项依次而不是并行地发送。
对于阿帕奇来说,这就是橡胶与道路相遇的地方。您可以更改多处理模块(MPM)以更改那些保持活动的连接的处理方式.以及许多其他的事情来调整整体的表现。
尽管你对阿帕奇做了这么多微调.有时,它并不是工作的完美工具。阿帕奇是工具箱里的瑞士军刀。它被设计成工具箱中最具动态性的工具。Nginx更流线型,不包括你在阿帕奇刀里找到的镊子或剪刀.而nodejs只是一把黄油刀。有时(当环境允许的时候),最好是混合和匹配,以获得所有它们的好处。
https://serverfault.com/questions/800378
复制相似问题