|
|
1
1
百万美元的问题和百万种不同的权衡。对于那些得到巨蟒的人。。。 https://www.youtube.com/watch?v=pWS8Mg-JWSg 回到现实…Apache2可以处理重工作负载,nginx可以处理重负载,Node、Tomcat、Jetty、JBoss、Netty也可以……事实上,现在使用的任何知名应用程序服务器和相当多的不知名应用程序都可以处理重重工作负载并且它们都使用线程、事件和进程的各种组合来完成。一些语言(如Erlang或Go等)允许您在几百行代码中轻松启动高性能应用程序服务器。 尽管现在已经过时了,下面的页面提供了一些关于为什么这不是一个简单问题的重要信息。。。
与其担心性能问题,不如先对其进行测试,然后再询问如何使其更快……如果你很聪明,并确保你有一个模块化的设计,将其部分替换掉将相对容易,比如看看Apache对MPM做了什么,这是一个具有完全不同性能特性的可插拔引擎,等等。 一旦您的服务器在基准测试中超过了以上任何一个,您对这个问题的回答可能会被接受。 |
|
|
2
1
繁重的工作负载是一个误导性术语,最终,它并不能真正决定您应该如何设计系统。这里的主要问题是响应性及其要求。如果处理单个请求需要很长时间,并且您不想让其他客户机饥饿(您可能不想这样做),那么单线程设计显然不行。您至少应该有一个线程(或每个客户端一个)以某种方式处理对请求的响应,即使只是通知客户端请求正在处理。 |