用gatewayworker開發(fā)的接口,為了解耦數(shù)據(jù)庫,每接到一條數(shù)據(jù),就通過syslog()來存入Rsyslog,Rsyslog再連接數(shù)據(jù)庫mysql,將數(shù)據(jù)寫入到數(shù)據(jù)庫;數(shù)據(jù)庫插入后對數(shù)據(jù)進(jìn)行分析,收到一條回復(fù)一條ACknowledge,ack通過觸發(fā)器用mysql-udf-http post到 gateway的一個http口上;post的數(shù)據(jù)庫客戶端client_id 和ACK的內(nèi)容。剛開始都正常,但開一個多小時后接口就得只收不發(fā)了。重起gateway能恢復(fù),不知道是什么問題。
還有一個問題,出現(xiàn)兩次,都是大量往數(shù)據(jù)庫寫重復(fù)日志,一次寫了五千多條,一次寫了幾十萬條。
關(guān)了接口都還在寫,應(yīng)該是rsyslog的spool文件緩存里還有日志沒寫進(jìn)數(shù)據(jù)庫。重起rsyslog后正常。
但總的來說應(yīng)該是哪里有問題。onMessage,里面我一個循還都沒寫,接口就是單純的收發(fā)數(shù)據(jù),處理數(shù)據(jù)都是mysql觸發(fā)器和存儲過程。各位前輩給我指點指點,這是我第一次做軟件開發(fā),沒什么經(jīng)驗,以前只做過運維和網(wǎng)絡(luò)。