我正在用java构建一个简单的聊天服务器,用户可以在其中彼此进行私人对话。我想将这些对话保存在服务器级别(而不是在客户端),以便将它们作为对话日志服务列出给用户。
我还在软件中使用MySQL作为数据库。

我正在寻找的是一种优化的方式来保存这些对话,并且是一种稍后将其列出的快速方式。
到目前为止,我已经考虑了2种实现方式。

  • 使用MySQL数据库和

    a)将对话连续保存为文本,但问题是某些对话非常大(很多字符),我在保存整个对话时可能会遇到问题

    b)连续保存对话的每一行,但是当我要列出整个对话
  • 时,会出现速度问题
  • 将每个对话保存在一个单独的文本文件中,但是我担心出现读/写问题,尤其是在用户(客户端)非常快地编写(发送文本)时。

  • 谢谢

    最佳答案

    您知道这是一个很大的体系结构问题。像Facebook和Twitter这样的公司花费大量时间和金钱来以健壮的方式解决您的问题。如果您的聊天服务器很简单(如您所写),请使用1.b方式,但要创建一个抽象层(类似于saveConversationgetConversation)。如果将来的速度无法满足您的需求,请考虑使用更高效的表示形式,例如NoSQL数据库(LevelDB或类似的东西)。现在不要考虑性能,创建具有良好抽象性和可插入体系结构的原型。

    关于java - 聊天服务器:保存对话日志的最佳方式(最佳方式)是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8655765/

    10-13 05:04