我正在实现一个多线程的Web服务。每个传入请求都会产生一个线程。对于每个客户端,创建一个会话,每个会话包含一个数据部分 - 比如一个DOM树。客户端请求基本上是get / set方法,服务器将读/写DOM。
所以DOM数据是每个客户端。
现在我的问题是,服务器是否应将此DOM树视为关键部分?
基本上问题是,是否存在服务器有两个线程为同一客户端提供服务的情况?
请求/响应是SOAP over tcp。根据我的理解,即使客户端是多线程的,tcp客户端也无法发送同步请求。所以在服务器端,我不会遇到两个线程用于同一个客户端的情况。如果我错了,请纠正我,我是tcp / ip客户端 - 服务器编程的新手。
感谢。
答案 0 :(得分:1)
根据我的理解,即使客户端是多线程的,tcp客户端也无法发送同步请求。
??它来自哪里?
在HTTP中,当然基于TCP,需要并发客户端请求。 RFC2616表示HTTP客户端(浏览器,REST客户端等)应该将对特定服务器的并发出站请求数限制为2.但这不是协议的严格要求,本指南在某些架构中,有时会故意不遵循。
我提出这个问题只是为了说明TCP本身支持客户端的多个并发出站请求。在一般情况下,TCP客户端可以打开许多并发的出站请求。
您使用的特定通信框架可能不支持客户端的多个并发出站请求。但那是另一回事。
答案 1 :(得分:0)
您应该考虑到每个请求的线程无法针对更高的请求率进行扩展,您将失去大部分时间进行线程切换
答案 2 :(得分:0)
您需要使用服务器的文档进行检查。高级服务器最有可能允许您配置请求处理策略(例如,顺序,每个连接的线程,每个请求的线程,线程池等)。
我担心客户端可以发送同步请求(如果它是多线程的)。