发布网友
共2个回答
热心网友
netty是一个网络通信框架,它即可以做为长连接,也可以是短连接。但是长连接和短连接的区别不是根据netty区分的,而是根据你的服务区分的。比如以tcp通信为例,不管是长连接还是短连接,都是socket通信,区另在于,长连接在建立tcp握手成功之后,就不会主动断开
连接,而是保持连接,而短连接是一次请求结束之后,服务器就会主动断开连接,以释放资源。
热心网友
netty本身实现的长连接,就是一个连接一个worker。worker的数量是有限的(通常是cpu
cores+1),所以你的服务器要是连接数多的话,得考虑使用“异步”request(netty的http没实现这么个功能),或者说“continuation”,当连接“无事可做”的时候,放弃线程的使用权,当要处理事务的时候,才重新拿到一个线程。
当然,如果你只想实现长连接而不在意request
一直占有worker,那么你只要不放弃连接就可以了(websocket本身也是一种长连接,netty里面有websocket的例子)。