Django Naive Chat实施。它会起作用吗?

时间:2017-03-16 16:00:30

标签: django database performance server chat

我被要求在django上建立一个特殊门户网站的聊天应用程序,只有在特定时间,4个员工用户才能与4个选定用户(大约500个并非全部同时登录)用户数据库通话

我使用django和ajax实现了它,其中包含以下详细信息 - >

我使用聊天模型存储了发送到服务器的所有聊天消息,直到现在。它是

字段
  1. userto
  2. userfrom
  3. 消息
  4. 每个用户都有两种状态:

    1. 他可以等待聊天室变空,他可以分配
    2. 他可以在聊天室与其中一名员工进行交谈
    3. 在聊天室中,使用ajax我查询聊天表中的所有消息,并显示属于聊天的消息。现在,每隔0.5秒就会向服务器发送一次请求以更新消息列表。

      注意 - 在聊天室内只显示两个用户之间的消息

      当不在聊天室时,用户被重定向到正常页面(这不是实时)并显示可以加入的所有聊天室。 在这里,用户刷新页面,并且仅在那时将请求发送到服务器,服务器更新聊天室列表。基本上,工作人员一次只与一个人交谈。

      所以基本上以下应该是服务器每秒处理的最大负载 - >

      1. 每个用户每秒发出16个请求(每半秒发出1个请求)来更新聊天,每个聊天都会查看到目前为止发送的所有聊天消息。

      2. 最多约30-50个用户将在任何给定时间访问门户网站,因此他们可能会发送刷新请求,例如每4-5秒发送1次。但是这里的数据库查询非常小,因为它有只需要4行数据库,即聊天室。

      3. 因此,每秒向服务器发出大约30个请求,其中16个是需要通过每个用户发送的所有聊天消息的重要请求,以及需要仅查询4行数据库的14个轻请求。 / p>

        这将在未来部署在服务器上(RAM-256 GB可升级到1.5 TB,硬盘 - 3 * 1.8 TB),目前在服务器上(硬盘 - 1900 GB和RAM - (大约128 GB)< / p>

        我有以下3个问题:

        1. 我的当前实现是否会在giver服务器约束上正常工作,如果不是我请求

          1. 首先改进当前系统本身(例如减少更新聊天或数据库改进的请求之间的时间)
          2. 一些更好,更容易实现的方法,因为我没有太多时间来改变完整的东西
        2. 我正在从员工端实现归档聊天功能,这样,每秒钟只会在那些繁重的请求中浏览非归档消息,这将大大减少要浏览的消息数量

        3. 如果可能的话,我想以这样的方式实现数据库:每个员工和用户组合都有单独的表。我不知道怎么做,所以如果有办法,请指出我正确的方向。

        4. 因此,我只需要在工作人员和用户之间获取消息并显示它们,而不是每次都查看所有消息,这应该会显着减少我认为的负载。

          我已密切关注以下链接中的聊天实施

          https://github.com/MiniGunnR/django-jquery-chat-application
          https://www.youtube.com/watch?v=Z8Gjm858CWg&t=322s

0 个答案:

没有答案