我对实现以下简单流程感兴趣:
客户端向服务器进程发送服务器存储的简单消息。由于该消息没有任何层次结构 IMO,因此最好的方法是将其保存在文件中而不是 rdb 中。
但我想弄清楚如何优化它,因为我看到它有两个选择:
- 服务器向客户端发送 200 OK然后存储消息,因此客户端不会注意到任何延迟
- 服务器保存消息,然后发送 200OK 但随后客户端注意到文件 I/O 的开销。
我更喜欢 (1) 的性能,但这可能会导致客户认为一切正常,而实际上从未保存过 msg(对于各种错误情况)。
所以我在想我是否可以使用 nio 和内存映射文件。
但我想知道这是使用 mem 映射文件的好选择吗?使用内存映射文件会保证例如如果进程崩溃,msg 会被保存吗?
在我看来,流程将创建/打开和关闭许多文件,所以这是内存映射文件的好选择吗?