我被要求在django上建立一个特殊门户网站的聊天应用程序,只有在特定时间,4个员工用户才能与4个选定用户(大约500个并非全部同时登录)用户数据库通话
我使用django和ajax实现了它,其中包含以下详细信息 - >
我使用聊天模型存储了发送到服务器的所有聊天消息,直到现在。它是
字段每个用户都有两种状态:
在聊天室中,使用ajax我查询聊天表中的所有消息,并显示属于聊天的消息。现在,每隔0.5秒就会向服务器发送一次请求以更新消息列表。
注意 - 在聊天室内只显示两个用户之间的消息
当不在聊天室时,用户被重定向到正常页面(这不是实时)并显示可以加入的所有聊天室。 在这里,用户刷新页面,并且仅在那时将请求发送到服务器,服务器更新聊天室列表。基本上,工作人员一次只与一个人交谈。
所以基本上以下应该是服务器每秒处理的最大负载 - >
每个用户每秒发出16个请求(每半秒发出1个请求)来更新聊天,每个聊天都会查看到目前为止发送的所有聊天消息。
最多约30-50个用户将在任何给定时间访问门户网站,因此他们可能会发送刷新请求,例如每4-5秒发送1次。但是这里的数据库查询非常小,因为它有只需要4行数据库,即聊天室。
因此,每秒向服务器发出大约30个请求,其中16个是需要通过每个用户发送的所有聊天消息的重要请求,以及需要仅查询4行数据库的14个轻请求。 / p>
这将在未来部署在服务器上(RAM-256 GB可升级到1.5 TB,硬盘 - 3 * 1.8 TB),目前在服务器上(硬盘 - 1900 GB和RAM - (大约128 GB)< / p>
我有以下3个问题:
我的当前实现是否会在giver服务器约束上正常工作,如果不是我请求
我正在从员工端实现归档聊天功能,这样,每秒钟只会在那些繁重的请求中浏览非归档消息,这将大大减少要浏览的消息数量
如果可能的话,我想以这样的方式实现数据库:每个员工和用户组合都有单独的表。我不知道怎么做,所以如果有办法,请指出我正确的方向。
因此,我只需要在工作人员和用户之间获取消息并显示它们,而不是每次都查看所有消息,这应该会显着减少我认为的负载。
我已密切关注以下链接中的聊天实施
https://github.com/MiniGunnR/django-jquery-chat-application
https://www.youtube.com/watch?v=Z8Gjm858CWg&t=322s