我有一个专用服务器来运行我制作的聊天服务器。但服务器几乎超载,我想添加另一台服务器来平衡用户。
服务器都是Linux Ubuntu 12.04服务器,我制作的聊天程序是用c#和.NET用Mono开发的。
问题是,如果我在另一台计算机上打开另一个聊天服务器,我怎么能让用户可以在两台服务器之间进行通信?
我会尝试更好地解释:
用户A连接到服务器A. 用户B连接到服务器B.
如果用户A向连接到服务器B的用户B发送消息,我该如何将消息重定向到其他服务器?什么是最好的解决方案?
提前谢谢。
答案 0 :(得分:2)
首先,每当遇到性能问题时,首先应该尝试测量其确切位置。也许您可以通过查看缓慢的原因和位置,以某种方式显着提高系统的性能。这样您可能根本不需要扩展系统。您也可以尝试向上扩展而不是向外扩展,这通常更容易。
如果失败,我建议切换到现有的聊天系统,如XMPP或IRC。 C#有很棒的XMPP库,所以这是我认为最好的解决方案。
最后,如果你真的想按照你描述的方式扩展自己的聊天系统,我建议你只需要通过TCP发送消息作为JSON。您可以使用花哨的RPC内容或REST API,但对于这个用例,我认为您应该尽可能保持简单和轻量级。
答案 1 :(得分:1)
这取决于哪个部分确实缺失。负载平衡系统有很多部分。
我的猜测是你错过了支持部分,这可能不那么明显。
IPAddress - >负载均衡器< = x-Servers =>背板
这与我们在背面部分中使用的内容相似:
我希望它指出你正确的方向。