转自: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. Leagal or Not —— 拓扑排序(王道)

    Problem Description ACM-DIY is a large QQ group where many excellent acmers get together. It is so h ...

  2. arm-linux-gdb+gdbserver环境搭建以及远程调试

    0) gdb源码下载:http://ftp.gnu.org/gnu/gdb/ 1) 编译arm-linux-gdb 指定交叉编译工具链的位置 export PATH=$PATH:/usr/local/ ...

  3. 使用tornado实现用户认证

    关于用户的登录状态,一部分的应用程序是采用session实现的. HTTP是一个无状态协议,用户的每次请求都是相互独立的,HTTP本身意识不到用户是否登录. 很多web框架选择将session存放在c ...

  4. JavaScript对象深复制

    1.原理 使用JSON,当然需要JSON安全的格式,JSON安全请参考:http://www.cnblogs.com/mengfangui/p/8257269.html 2.示例 <!DOCTY ...

  5. linux 终端分屏命令vsp(转)

    比如:某文件夹下有文件:vector.cc, substr.cc 1.使用vim命令打开任意一个文件:vim vector.cc打开第一个文件.如下图所示: 2.按:"Esc"键 ...

  6. 01-Hibernate Tools for Eclipse Plugins安装

    Hibernate Tools for Eclipse Plugins安装 在线安装有两种方法 方法一:"Help > Install New Software Updates&quo ...

  7. Hibernate单向“一对一”关联

    1. 基于外键关联的单向“一对一”关联其中指定many-to-one的unique="true",为单向“一对一”,不指定就是单向“多对一” <class name=&quo ...

  8. 切换默认Activity和Fragment的动画

    Activity中 public void click(View view){ Intent intent = new Intent(); intent.setClass(this, TwoActiv ...

  9. lucene 加速索引建立速度

    加速 lucene 索引建立速度 ImproveIndexingSpeed

  10. Zigbee-CC2530开发板协议栈-改动发射功率

      CC2530 控制输出功率的寄存器是 TXPOWER: 推荐功率设置: 协议栈默认的设置是 0xd5,为了扩展信号传输的距离,我把TXPOWER寄存器值改为0xf5, 此时输出功率为4.5dBm. ...