2012-05-18 131 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的本質就是它將確認(如果有的話)留給應用層。