多客户端给服务器端的同一个端口发送信息,该怎么解决
多客户端给服务器端的同一个端口发送信息
我在想,普通的一台服务器只开放一个80端口来给所有用户提供web服务,服务器是如何处理多个用户同时给它的80端口发送请求或者数据的呢?是缓存吗?多线程?还是什么别的技术?
如果同时访问的用户太多了,服务器是不是就崩溃了?
我现在有一个项目,是个分布式系统的。有很多个事务会分别给服务器发送大量数据。我在想假如我服务器只开一个端口,是不是有可能会出现服务器忙不过来崩溃的情况?
比如一个事务正在给我的服务器的12345端口发送400MB的数据,与此同时,另外一个事务也正在给我的服务器的12345端口发送200MB的数据,或许还有第三个第四个事务......
在这种情况下,如果所有的事务都给12345端口发,是不是会出问题啊?我是不是最好每个事务专用一个端口?
------解决思路----------------------
对应每一个客户端连接,服务器都会建立一个socket,不会由于监听同一个端口造成服务器忙不过来;是否忙得过来与服务器资源以及采用的IO模型或数据处理方式有关。
------解决思路----------------------
tcp是可靠传输,这是由协议层保证的。发送成功了就不会丢,接收端缓冲区满了再发送的话程序就会阻塞等待(假设为阻塞模式,当然实际情况很复杂,不过业务层可以这么理解)。
我在想,普通的一台服务器只开放一个80端口来给所有用户提供web服务,服务器是如何处理多个用户同时给它的80端口发送请求或者数据的呢?是缓存吗?多线程?还是什么别的技术?
如果同时访问的用户太多了,服务器是不是就崩溃了?
我现在有一个项目,是个分布式系统的。有很多个事务会分别给服务器发送大量数据。我在想假如我服务器只开一个端口,是不是有可能会出现服务器忙不过来崩溃的情况?
比如一个事务正在给我的服务器的12345端口发送400MB的数据,与此同时,另外一个事务也正在给我的服务器的12345端口发送200MB的数据,或许还有第三个第四个事务......
在这种情况下,如果所有的事务都给12345端口发,是不是会出问题啊?我是不是最好每个事务专用一个端口?
------解决思路----------------------
对应每一个客户端连接,服务器都会建立一个socket,不会由于监听同一个端口造成服务器忙不过来;是否忙得过来与服务器资源以及采用的IO模型或数据处理方式有关。
------解决思路----------------------
tcp是可靠传输,这是由协议层保证的。发送成功了就不会丢,接收端缓冲区满了再发送的话程序就会阻塞等待(假设为阻塞模式,当然实际情况很复杂,不过业务层可以这么理解)。