websocket连接,一个8G的服务器,可以支撑多少连接。
不使用netty之类的技术,就是springboot + websocket 构建一个简单的前后通讯,单节点8G内存,可以支撑多少连接
这是一个比较复杂的问题,简单从内存的角度来说。
1. 首先要看你服务启动后的剩余内存
2. 你的传输内容占用多少内存
如果服务器空闲内存4G,每个链接的传输内容是100K,不考虑网络、cpu等其他因素的情况下,你可以进行一波换算。大约支持40000个链接。但实际情况并非如此,信息的接收和发送都需要额外的内存进行处理,比如转发队列,多一个链接意味着你广播的列表就会增加。建议还是做一波测试,比如100个链接占用多少内存,1000个链接占用多啊少内存。做一个参照和换算。你就有数了
空载单个连接,算3K。然后自己估计一下呗
现在都是mqtt了吧
2019年我们使用了spring boot 以及 javax包中的websocket接口自己实现(非spring boot 默认自带的websocket), servlet容器为undertow, 单机连接数最高时大约11W. 平稳运行到今年7月份. 后改为netty 实现, 借助于ring buffer、池化 以及 epoll,实现了接近于C的性能, 为什么不用netty呢?
没必要用分布式啊,netty 书很多啊
这是一个比较复杂的问题,简单从内存的角度来说。
1. 首先要看你服务启动后的剩余内存
2. 你的传输内容占用多少内存
如果服务器空闲内存4G,每个链接的传输内容是100K,不考虑网络、cpu等其他因素的情况下,你可以进行一波换算。大约支持40000个链接。但实际情况并非如此,信息的接收和发送都需要额外的内存进行处理,比如转发队列,多一个链接意味着你广播的列表就会增加。建议还是做一波测试,比如100个链接占用多少内存,1000个链接占用多啊少内存。做一个参照和换算。你就有数了
空载单个连接,算3K。然后自己估计一下呗
现在都是mqtt了吧
2019年我们使用了spring boot 以及 javax包中的websocket接口自己实现(非spring boot 默认自带的websocket), servlet容器为undertow, 单机连接数最高时大约11W. 平稳运行到今年7月份. 后改为netty 实现, 借助于ring buffer、池化 以及 epoll,实现了接近于C的性能, 为什么不用netty呢?
没必要用分布式啊,netty 书很多啊