【问题标题】:Java socket programming chat room for android and iosandroid和ios的Java socket编程聊天室
【发布时间】:2015-09-22 07:49:02
【问题描述】:

我的团队正在为 android 和 ios 开发一个基于推送通知的实时聊天应用程序的 java-socket 编程。

我们在代码上做了很多工作并构建了它。但是在扩展应用程序之前有几个问题值得回答。

1)基于 Java 的套接字编程是否可以为十亿用户扩展?它是制作聊天应用程序的最佳方式吗?

2)一个聊天室可以处理多少人?是否可以增加大约 500-1000 名参与者?

3)这一切都取决于物理服务器(性能)吗?费用是多少?

如果您知道任何答案,请提供帮助,并提前谢谢您。

【问题讨论】:

    标签: java android ios sockets server


    【解决方案1】:

    套接字只是在客户端和服务器之间移动数据的系统。

    单个 S.O. 的 socket 数量有一些限制。可以处理,但可以在不同节点之间进行扩展。 Java 可以毫无问题地做到这一点。

    如果您选择正确的架构并水平扩展它,那么处理数百万并发用户和同一房间内的数千用户可能没有问题。

    最大的瓶颈在于网络速度,因为处理数百万条消息可能会阻塞您的网络。所以从物理上讲,问题通常不是 cpu,而是网络吞吐量。

    要了解服务器可以处理多少同时连接,请阅读此article

    2011 年,WhatsApp 在一个 有内存和cpu的单机备用。 2012年被推 超过 200 万个 TCP 连接。 2013 年,WhatsApp 发布推文:开 12 月 31 日,我们迎来了一个新的记录日:7B msgs inbound,11B msgs outbound = 一天内处理了 180 亿条消息! 2013 年快乐!!!

    【讨论】:

    • 谢谢您的回答,但是可以使用大型服务器管理/扩展网络吞吐量?我需要的服务器数量/大小的估计值是多少,如果可以的话,总成本是多少猜猜……这对我很有帮助……
    • 不,您只能移动尽可能少的数据或将其分布在不同的节点之间。例如,为了减少聊天服务器的网络流量,Whatsapp 等高级聊天系统使用不同的服务器来处理图像共享和聊天。如此密集的网络流量不会减慢您的聊天速度。
    • 我需要的服务器数量/大小估计是多少,如果您能猜到,总成本是多少......这对我很有帮助..跨度>
    • 不了解您的架构是不可能的。但我编辑答案给你一些数字。
    • 如果您认为这个答案是正确的并且对您有帮助,您可以投票并用绿色对勾将其标记为正确答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2014-12-21
    • 2021-12-04
    • 2019-12-08
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多