【高级】讨论C/S编写聊天程序
在我做的过程中遇到了许多问题。
首先是性能问题。
目前我使用的是TCP协议,唯一的缺点在于,TCP的服务器端必须保持桢听状态,浪费服务器资源。
诺使用UDP协议,就不会时刻保持连接,一旦发送完信息后,就立即断开。节省服务器资源。但问题在于怎样使用UDP协议跨越网段。。
目前小弟使用TCP协议,已策划到多服务器应用,不知道是否可性。因为象类似QQ一样的聊天工具,同时上线人数可能达到1000万人。为了解决此问题,我们不可能仅用一个服务器。
在这里,我想了如下的方案:
考虑多服务器的应用
1、当客户端登陆时,首先连接默认A服务器。当该A服务器负载满时候,A服务器将B服务器的IP告诉客户端,叫客户端连接B服务器。
当完成连接后,将该客户端所连接的服务器IP,写到用户表中。就此依次类推。
2、A客户端与B客户端通讯时。首先A客户端将信息发送给自己连接的服务器。服务器根据A客户端发送的消息,来选择回送信息的
服务器(此时必须从数据库读取该用户表中的对应 服务器IP 的信息,来选择服务器 假设B客户端连接的是B服务器)。选择完回送的服务
器B,将A客户端的信息发送给B服务器,之后,B服务器来将信息发送给B客户端。
请高手门指点迷津。
现在我只剩10的分数,等我赚回,我会好好回报大家的,请相信我。