關於程序執行一段時間就卡死的問題

場景描述

最近實習忙了一個子項目,該項目主要開發一個實時數據轉化引擎。說白一點,就是利用kafkaStreams讀取kafka中的數據,然後將這些數據入庫到mysql或者hbase中。這個引擎是單獨開發,然後打成一個jar包,通過父項目的調度程序拉起來執行(其實就是執行一個shell腳本)。

問題描述

後來子項目開發完後,我們自己手動調這個程序jar,程序跑得很好;
通過父項目的調度系統拉起該jar包時出問題了,通過執行日誌我們發現,程序入庫了幾萬條數據後,就卡死了,不報錯也不執行了;
接下來,我們手動拉起這個jar包,程序也執行的很正常;
調度系統調度其他jar包是都沒有問題,唯獨調度實時數據轉化引擎,執行一段時間就卡死。

問題分析

問題主要出在日誌上。首先,手動起引擎時,打在控制檯的日誌是直接輸出在界面,是可見的;當我們用調度系統啓動引擎時,打在控制檯的日誌是輸出的緩衝區的,一旦這個緩衝區寫滿,進程金輝睡眠。

問題解決

修改後的Logback配置文件:

<root level="info">
		<!-- 上線時間STDOUT註釋掉,防止緩衝區寫滿,導致進程睡眠
		<appender-ref ref="STDOUT" />-->
		<appender-ref ref="FILE" />
	</root>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章