我有一个应用程序,Web 服务器将一些请求重定向到后端服务器,后端服务器(Linux)将对 Web 服务器进行复杂的计算和响应。对于 web 服务器和后端服务器之间的 tcp 套接字连接管理,我认为有两个基本策略:
“短”连接:即每个请求一个连接。这对于套接字管理来说似乎很容易,并简化了整个程序结构。在接受之后,我们只是得到一些线程来处理请求,最后关闭这个套接字。
“长”连接:即一个tcp连接,可以有多个请求一个一个。似乎这种策略可以更好地利用套接字资源并带来一些性能提升(我不太确定)。但似乎这比“短”连接带来了很多复杂性。例如,由于现在 socket fd 可能被多线程使用,因此必须涉及同步。还有更多,socket失败过程,消息序列......
对这两种策略有什么建议吗?
更新: @SargeATM 的回答提醒我,我应该更多地了解后端服务。每个请求都是上下文无关的。后端服务可以根据单个请求消息进行计算。好像是…… 无国籍。