这种情况用什么网络模型比较好?
要实现的是一个转发平台
有多个A类客户端,和多个B类客户端,A、B都是主动连接到平台
A类户端会一直传输实时数据到平台,每秒种在(1M左右),同时根据B类客户端的连接和授权情况,将A客户端的数据转发给
B客户端,一个B类客户端可以同时接收平台转发的多个A类客户端。
我现在采样的是选择模型,1个A,10个B的情况,就会有延时的情况。转发不过来。
采用什么样的模型比较好。有例子更好了
hucailai@163.com
[解决办法]
windows下IOCP,不过Select应该也不会有本质上差据的。无论哪种模型,线程都不要开多了,也不要用同步I/O(貌似很多情况下都是因为使用同步I/O所以开了很多线程)。
还有,10个B就是10M左右的数据了,要百兆带宽了,你确信你的网络拖得动?
[解决办法]
个人觉得,select就是有数量限制,剩下没什么不好的。
[解决办法]
延时估计主要在网络I/O等方面,所以需要想办法提高这方面的性能.更强的网卡,带宽,CPU,内存等
[解决办法]
1个A就1MB/s了,你有几个A?
理论上讲,百M的网卡也就12MB/s的样子,实际大概只有10M~11M,如果CPU占用过大,可能还会有所下降。
你说到了延迟,延迟多少?如果在一个合理的范围内,就不用去管他了,肯定会有延迟的,不管你如何弄。
IOCP模型是可以解决一些框架和消息运作的问题,但是并不能解决大数据的问题,所以如果A过多的话,还是考虑用分布式服务器来处理。
按照你提供的条件来看,基本上一台服务器带个5~8个A,加若干B是个可行的方案
[解决办法]