【问题标题】:"Real time" app or near to it“实时”应用程序或接近它
【发布时间】:2014-11-20 18:31:18
【问题描述】:

例如,我们有一个任务是:

  1. 用户向服务器发送数据(这里都清楚了)
  2. 服务器向客户端发送数据

有了移动设备,一切都变得清晰起来。我的服务器将数据发送到推送服务器,然后推送服务器将数据发送到设备,然后设备转到服务器并从服务器下载数据。

但是如何处理浏览器扩展、Mac OS 应用程序或 Windows 程序?在这里,我看到了两种变体:

1) 每 x 秒从服务器请求数据。例如,如果我们使用 30 秒的间隔,那将不是“实时”的,但如果我们每 2 秒向 10 000 个客户端请求数据(例如),它看起来就像是自我 ddos​​ 攻击。

2) 使用套接字。我知道套接字非常适合聊天应用程序,但如果我们的应用程序不是聊天应用程序,例如,我们将每 5-60 分钟或更长时间发送一次数据。当我读到许多关于套接字性能测试的文章时,在大量人员(假设大约 1-1 万个连接)的情况下使用套接字服务器需要大量资源。

也许我遗漏了一些东西,或者在这种情况下还有哪些其他选项可用。 你能指导我正确的方式吗?如何尽快向客户端发送数据?

【问题讨论】:

  • Socket 是任何网络间通信的端点。因此,通过您选择的任何方法,您都将隐式或显式地拥有套接字。

标签: sockets real-time


【解决方案1】:
  1. 缓存频繁发送的数据,以便数据库调用和其他 可以避免处理。
  2. 使用适合大容量网络流量的设备和可以处理高负载的服务器
  3. 当您的服务器太忙而无法处理流量时丢弃流量
  4. 如果可能,对客户端进行编程,以便它们以不同的时间间隔连接 - 而不是一次全部连接。
  5. 维护多台服务器并使用负载平衡器分发请求。进行负载平衡的一种简单方法是使用 DNS 循环 - 我不是说你应该这样做,只是把它扔在那里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多