百万级用户服务器的开发,求平台建议
最近公司涉及一个大型软件开发,服务器需要面对百万级的用户,其中有上千的长连接。
数据包不大,接近文字聊天的水平。但是还没有决定用http还是udp。
像这种情况,哪个平台比较合适,j2ee,C++,还是C#?
如果要使用长连接,双向发送数据,用哪种协议和连接比较合适?
高分求助,回复有分!
百万级??j2ee?
[解决办法]
对丢少量的数据不敏感的情况下,可以考虑用udp实现。
如果在http层实现,并发1000的情况,如果限制单台机器,server应该考虑用nio(单指JAVA)的server实现。现在已经有不少成熟的实现jetty, netty, servlet 3.0都有这种实现。也可以自己实现,工作就相对要大不少。
[解决办法]
UDP不太合适,你很难解决服务器到客户端的通讯问题,除非你确保大家都在可以相互直接访问到的网络环境中(也就是不存在NAT的情况)。此外UDP方式下解决信息安全问题,也需要额外花费些功夫。
建议仍然是TCP模型,从你的需求来看,应该是类似即时通讯这种通讯量极低但是并发连接极高的情况;那么可以考虑采用 NIO 模型,这样一条线程就可以服务N条TCP连接。
不过要普通PC服务器要单机解决百万级在线用户,恐怕还是不现实的,估计单机完成十万级别连接就差不多上限了。
另外:如果服务器端信息接收量多而发送量少的话,可以采用两种通道并用的方式。
[解决办法]