存储和读取流数据

Store and read Streamdata

我有一个工作进程生成一个连续的文本日志(直到它完成)。我将这个日志发送到一个 Web 服务器,它应该存储这个日志。同时,用户应该可以通过使用不同的 Web 服务器界面实时查看此日志。

实际上我有一个 HashMap,其中键是一个 ID,值是一个 StringBuilder,每当出现新的日志行时我都会在其中附加数据。

问题是,任何进程都使用这个 HashMap,我担心会有更多的同时进程和许多想要读取日志的用户。

对于这个用例,什么是更好的方法?

由于对网络服务器的所有请求都是在不同的线程中进行的,因此在以下情况下可能会出现问题:

  • 一个线程将写入StringBuilder
  • 另一个线程将读取相同的StringBuilder

最简单的解决方案:使用 StringBuffer 而不是 StringBuilder,因为它的所有方法都是同步的。