我应该在长时间运行过程中保持套接字打开吗?

时间:2012-04-11 17:03:59

标签: sockets graphite

我偶尔会有一些程序(每隔几分钟到每小时一次)需要将指标发送到Graphite。我是否应该在我的流程期间保持套接字打开石墨服务器,或者每次我需要发送一些指标时建立新的连接?做其中一个时需要考虑什么?

1 个答案:

答案 0 :(得分:0)

听起来你需要一个TCP连接。

如果你应该保持连接是否有效取决于点的答案,例如: - 您想在任何给定时间监控服务器上的“已连接”客户端吗? - 服务器端是否有与前一点相关的限制? - 此类客户端“连接”到服务器的数量? - 如果连接创建需要一些时间,这是一个问题吗?

如果您保持连接打开,请确保不时发送保持活动消息(提供应用程序级别)。

连接到服务器的大量客户端即使在不活动时也可能占用内存或对象的资源(例如,如果每个连接有一个线程)。 另一方面,保持连接,将允许客户端更快地检测服务器是否存在连接问题(如果这甚至很重要)。

这一切都取决于何时需要。