轉自:http://www.52itstyle.com/thread-27470-1-1.htmlhtml
HeartBeat. ~2 Z8 U! ?8 r 心跳檢測各種應用服務器(如Tomcat,Jetty),WEB服務器(如 Apache,Nginx) 的java WEB應用程序.5 R9 b. x6 y( e& J- C4 y0 |1 | # Q( P, Z$ E4 }7 W4 } 如何實現? ! Q/ H( g( f; S7 @: V, z: V$ u7 D3 J 使用HttpClient對指定的服務器(application-instance) URL 按頻率(10秒,20秒...) 發起請求並記錄響應的信息(鏈接耗時,是否鏈接成功,是否有異常,響應數據包大小), 若檢測到不正常(響應碼不是200,拋出異常...)時則發送郵件給指定的地址,當檢測恢復正常時也發送提醒郵件. * e2 H2 m) s- |% H2 Z0 F4 W+ L 未來會添加更多的實時提醒方式接口,如微信,短信 7 u: |' }: J5 _ 使用的框架及版本 JDK - 1.7 spring Framework - 3.2.2.RELEASE Quartz - 2.2.1% N. ~% x3 D6 i9 I- | hibernate - 4.1.7.Final HttpClient - 4.3.5 Flat UI4 J) Q) f! D7 l/ A- m Maven - 3.1.01 J& C; K! Q6 K0 m; E' {( ~% V TestNG - 6.1.1 (Unit Test)2 {' ?$ G g J 9 t M: q' [5 _( `8 m 特色 / ?5 |9 H9 l& ^# V8 i s 無侵入,獨立部署 可同時監測多個應用服務器, R E y. `2 d 請求方式支持GET,POST; URL支持http與https, 可指定請求content-type, 添加請求參數(固定參數或隨機參數)- s1 B+ m9 i3 { 添加安全設置,可控制用戶註冊,設定用戶權限等 使用簡潔,靈活 提醒方式及時,多樣(目前僅實現郵件提醒,未來會加入微信提醒,短信提醒等)0 [" W' ~, ^1 d. _/ @5 m8 A % J+ Y/ T1 @3 ` 運行環境) L/ X6 U/ w& s' u/ R' i1 W8 O# J9 B& @* v 5 t7 j- A/ D5 F2 v JRE 1.7 + MySql 5.5 + Tomcat 7 +' w' Z0 i t0 X* l7 n4 s 在線測試 http://monitor.52itstyle.com/hb7 @2 w0 e m- _' R. z! {8 \6 x- K 如何使用? ( T# m' ?* t/ y! S- J+ k; r, Z 項目是Maven管理的, 須要在電腦上安裝maven(開發用的版本號爲3.1.0), MySql(開發用的版本號爲5.5)9 b- d% X: d8 L* x! b 下載(或clone)項目到本地 建立MySQL數據庫(默認數據庫名:heart_beat), 並運行相應的SQL腳本(腳本文件位於others/database目錄), 運行腳本的順序: HeartBeat.ddl -> quartz_mysql_innodb.sql -> initial-db.ddl(該ddl會建立初始管理員帳號/密碼:hb/heart_beat) 修改HeartBeat.properties(位於src/main/resources目錄)中的數據庫鏈接信息(包括username, password等) ' a- `) @7 A- _8 J3 H NOTE: 爲了確保能收到提醒郵件,請將配置文件中的 mail.develop.address 配置爲你的郵件地址; 若在生產環境,請將 mail.develop.environment 值修改成 false (true表示爲開發環境)4 C& p, Z4 Z# A 將本地項目導入到IDE(如Intellij IDEA)中,配置Tomcat(或相似的servlet運行服務器), 並啓動Tomcat(默認端口爲8080) 另: 也可經過maven package命令將項目編譯爲war文件(HeartBeat.war), 將war放在Tomcat中並啓動(注意: 這種方式須要將HeartBeat.properties加入到classpath中並正確配置數據庫鏈接信息). % c4 `1 [' V8 X$ h. S- z4 L/ _ 或直接在項目的'dist'目錄下載完整版安裝包.( H" ~2 h4 Z/ t' D6 y4 [ HeartBeat運行後, 初次登陸可以使用默認管理員帳號/密碼:hb/heart_beat, 若失敗, 須要在數據庫中運行初始SQL腳本文件initial-db.ddl(others/database目錄), 帳號密碼使用MD5加密.5 h- l- B- V( w/ G' b 程序運行主要截圖 <ignore_js_op> ![]() % l) n* a& o) ~: Z <ignore_js_op> ![]() / v2 T i% M" O. l+ ]: W$ k' O <ignore_js_op> ![]() <ignore_js_op> ![]() |