我正在开发后端服务。后端包含一些进程,意味着当客户端向我的服务器发送请求时,该请求将经过这些进程。
例如,请求将首先发送到进程nginx
,然后发送到进程http_proxy
,然后发送到进程request_handler
。
我需要做的是跟踪请求的路径,如下所示:
req ---> nginx:8888
nginx:4444 ---> http_proxy:7777
http_proxy:2222 ---> request_handler:6666
意思是通过该端口req
向该进程发送另一个数据包,并从该端口向该端口发送另一个数据包,以便该进程接收到该数据包,然后,从该端口向该端口发送另一个数据包,以便该进程接收到该数据包通过过程。nginx
8888
nginx
4444
7777
http_proxy
http_proxy
2222
6666
request_handler
看来不是这样,netstat
并且lsof
可以做我需要的事情。有什么方法或工具可以做到这一点吗?
答案1
很遗憾地说,您要么需要更好地理解 TCP/IP,要么根本不需要 TCP/IP。
应用程序日志记录可能是您问题的答案,但这取决于您的应用程序。
你写“nginx
从端口发送另一个数据包4444
到端口7777
”。我很确定它不是从固定端口发送的。这样做会将“并发”请求限制为一个。此外,一个请求不是一个数据包,而是多个数据包,查看网络详细信息通常对于处理应用程序级别的问题没有用处。
如果您想查看 TCP/IP 数据包,该工具是tcpdump
, 而不是netstat
或lsof
。