2012-05-18 132 views
0

所以我们有一个应用程序,使udp调用和发送数据包。但是,由于对UDP调用给出了响应,我们如何确保服务已启动并且端口已打开并且事件正在被存储?UDP健康检查

我们现在唯一的想法是发送测试数据包,并确保它们被保存到数据库。

所以我的问题是,有没有更好,更简单的方法来确保我们的udp调用成功?

+1

如果您需要可靠性,请使用TCP。否则,你最终只会或多或少地重新创建TCP。 –

+0

这是一个相当广泛的日志平台,已经建成,我们正在试图找到最简单的解决方案,以最小的修改,以便不打破其他项目。 – Adam

+0

我们采取了一种不同的方法,我们正在检查以确保调用它到数据库。它很容易查询一个表,并确保记录在那里。如果没有最近,我们知道有什么不对。 – Adam

回答

0

我们采取了一种不同的方法,我们正在检查以确保调用它到数据库。它很容易查询一个表,并确保记录在那里。如果没有最近,我们知道有什么不对。 CodeGnome有一个好主意,而不是我们去的路线。谢谢!

3

在监听主机上,您可以验证端口是否打开netstat。例如,如果您的应用程序使用UDP端口68,你可以运行:

# Grep for :<port> from netstat output. 
$ netstat -lnu | grep :68 
udp  0  0 0.0.0.0:68    0.0.0.0:* 

你也可以一些测试数据发送到您的应用程序,然后检查你的数据库,以验证该灯具的数据使它成为你的数据库。这并不意味着它总是会的,只是它在测试时正在工作。

最终,问题是UDP数据包是尽力而为的,而不是保证。因此,除非您可以配置您的日志平台在接收和/或写入数据后发送某种确认,否则您无法保证任何内容。 UDP的本质就是它将确认(如果有的话)留给应用层。