关于 jetty 和 thrift 一起使用时,到底会怎样使用nio?
这两个工作在不同的端口,并没有什么关系。
TCP/IP
服务器 server
与 客户端 client
通讯是通过 TCP/IP
协议,即 IP,PORT, 端口。
比如你启动了 8080端口的 Spring boot,然后firefox 访问首页,则可以尝试 netstat -tnap | grep 8000
查看 8000 端口的连接情况。
? ~ netstat -tulnap | grep 8000
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::8000 :::* LISTEN 21297/java
tcp6 0 0 ::1:8000 ::1:46366 ESTABLISHED 21297/java
tcp6 0 0 ::1:46366 ::1:8000 ESTABLISHED 12125/firefox
- 第一条表明 java 进程
21297
监听了 8080端口。
可以进一步 ps -q 21297 -efa > /tmp/a && cat /tmp/a
查看实际运行的程序,比如;
你可以看到是我的 Spring boot
。
- 第二条表示
Spring boot
服务器 与 浏览器 firefox 建立的 连接。
- 第三条表示 浏览器 firefox 与
Spring boot
服务器 建立的 连接。
补充
-
nio
,一般指服务器 server
采用的IO模型是多路复用IO模型,跟客户端 client
没有关系。
-
netty, jetty 都是 应用服务器。
- 不同的是 jetty 接受的是 HTTP 协议的请求,服务于指定的端口,是 HTTP 应用服务器。
- 而 netty 接受的是 TCP 协议的请求,服务于指定的端口,是 TCP 应用服务器。
- thrift 是 rpc 框架,同时也是 TCP 应用服务器。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…