转自:http://www.52itstyle.com/thread-27470-1-1.html

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> 7 u$ Q. c1 A: E0 B/ r( ^
% l) n* a& o) ~: Z
<ignore_js_op> ! W4 h! b$ e0 q' E7 w# T+ ~) F7 d
/ v2 T  i% M" O. l+ ]: W$ k' O
<ignore_js_op>

<ignore_js_op>

spring-security+hibernate4+quartz实现的心跳检测项目(转 收藏)的更多相关文章

  1. spring中配置quartz调用两次及项目日志log4j不能每天生成日志解决方法

    在quartz中配置了一个方法运行时会连续调用两次,是因为加载两次,只需在tomcat的server.xml中修改配置 <Host name="www.xx.cn" appB ...

  2. Spring Security笔记:Remember Me(下次自动登录)

    前一节学习了如何限制登录尝试次数,今天在这个基础上再增加一点新功能:Remember Me. 很多网站,比如博客园,在登录页面就有这个选项,勾选“下次自动登录”后,在一定时间段内,只要不清空浏览器Co ...

  3. spring security之httpSecurity使用示例

    如果在HttpSecurity中配置需要authenticate(),则如果没有登陆,或没有相关权限,则会无法访问 2017-01-02 23:39:32.027 DEBUG 10396 --- [n ...

  4. spring security之httpSecurity 专题

    37.5.2 Resolving the CsrfToken Spring Security provides CsrfTokenArgumentResolver which can automati ...

  5. spring boot+freemarker+spring security标签权限判断

    spring boot+freemarker+spring security标签权限判断 SpringBoot+SpringSecurity+Freemarker项目中在页面上使用security标签 ...

  6. SpringBoot 集成Spring security

    Spring security作为一种安全框架,使用简单,能够很轻松的集成到springboot项目中,下面讲一下如何在SpringBoot中集成Spring Security.使用gradle项目管 ...

  7. Spring Security LDAP简介

    1.概述 在本快速教程中,我们将学习如何设置Spring Security LDAP. 在我们开始之前,了解一下LDAP是什么? - 它代表轻量级目录访问协议.它是一种开放的,与供应商无关的协议,用于 ...

  8. 一分钟带你了解下Spring Security!

    一.什么是Spring Security? Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架,它是用于保护基于Spring的应用程序的实际标准. Spring Secu ...

  9. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_05-SpringSecurityOauth2研究-搭建认证服务器

    3 Spring Security Oauth2研究 3.1 目标 本项目认证服务基于Spring Security Oauth2进行构建,并在其基础上作了一些扩展,采用JWT令牌机制,并自定 义了用 ...

随机推荐

  1. 利用github和git命令,将本地项目共享到服务器上

    一.步骤 1. 创建项目根目录 mkdir 文件夹名 2. 初始化文件夹 git init 3. 配置用户名和邮箱(第一次配置后,不需要再登录) git config user.name 名字 git ...

  2. angularJS中的表单验证(包括自定义验证)

    表单验证是angularJS一项重要的功能,能保证我们的web应用不会被恶意或错误的输入破坏.Angular表单验证提供了很多表单验证指令,并且能将html5表单验证功能同他自己的验证指令结合起来使用 ...

  3. 【DB2】DB2中rank(),dense_rank(),row_number()的用法

    1.准备测试数据 DROP TABLE oliver_1; ),SUB_NO ),SCORE int); ,,); ,,); ,,); ,,); ,,); ,,); 2.详解rank(),dense_ ...

  4. 简单模拟Spring的注入

    主要就是读XML技术和反射技术. 在xml中读出相关配置信息,然后利用反射将其实例化为对象,并调用其构造方法,在实例化的过程中将属性注入实例. 实例化和属性注入这些操作都交给了框架,不再需要自己的去n ...

  5. iOS UIButton文字和图片间距随意调整

    代码地址如下:http://www.demodashi.com/demo/11606.html 前记 在开发中,我们经常会遇到这么一种情况,就是一个按钮上面有图片也有文字,但是往往设计并不是我们想要的 ...

  6. ijkPlayer 集成

    代码地址如下:http://www.demodashi.com/demo/11957.html 概述 ijkplayer 是一款做视频直播的框架,基于FFmpeg,支持Android和iOS.这里介绍 ...

  7. ADO.NET基础知识学习(SQLCOnnection&SQLCommand&SQLDataReader&SQLDataAdapter&DataSet)

    通过ADO.NET技术,我们可以高效的完成客户端同数据库之间的数据访问操作,便于我们在客户端程序简便高效的访问以及获取数据库中的有用数据,同时也可以对数据库中的数据进行更新,即可以完成客户端与数据库之 ...

  8. 数组传到后台 string[] 获取

    调试的 时候js  断点到后台 js上面也可以查看 传到后台的数据 方便查看~~

  9. 应用phpexcel导出excel文件后打不开的问题解决方法

    应用phpexcel导出excel文件后打不开,提示“文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件的格式匹配”. 试了以下方法: 1.首先区分文件格式是2003,还是2007. 参 ...

  10. nodejs 命令行交互

    人机交互 function readSyncByfs(tips) { tips = tips || '> '; process.stdout.write(tips); process.stdin ...