【发布时间】:2011-12-21 02:12:23
【问题描述】:
我有一个关于架构/性能的问题。我说的是同时处理多个客户端请求的 SIP 服务器。我想每个请求都在一个专用线程中处理。在进程结束时,相关线程日志请求文件中的特定信息。我想优化处理的最后一部分。我的意思是我想知道您提出的替代方案,而不是将这些信息记录在文件中。为什么?因为在处理后写入文件会使用我用来处理其他到达请求的资源。
首先,您对这个问题有何看法?而且,如果您认为这是一个“真实”的问题(我的意思是替代方案可以优化性能),您有什么建议?
我考虑将数据记录到队列中,并在另一台机器中使用另一个进程,该进程将从队列中读取并写入文件。
感谢您的建议
【问题讨论】:
-
这个问题涉及面比较广,不知道需求是很难回答的。如果您需要记录,那么花费在记录上的资源是物有所值的。如果没有,请不要登录。要考虑日志记录的替代方案,我们需要更多地了解环境和要求。在另一台机器上记录数据不一定便宜,在这两种情况下都必须序列化数据。
-
@thiton 我说的是 SIP 服务器。一般来说,一个请求就是一个调用请求,一个线程专门用于这个调用,直到终止。在通话结束时(甚至通话期间出现错误),我需要在某个地方保留有关通话的信息。在当前设计中,调用信息由同一线程写入文件。我唯一的要求是我需要保留通话信息。
标签: multithreading performance architecture concurrency