转自: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. 详解Python中的生成器表达式(generator expression)

    介绍 1.生成器表达式(generator expression)也叫生成器推导式或生成器解析式,用法与列表推导式非常相似,在形式上生成器推导式使用圆括号(parentheses)作为定界符,而不是列 ...

  2. 【Swift】学习笔记(三)——字符和字符串

    基本了解了变量的创建和基础数据类型,但是在开发中用得最多的还是字符串.那什么是字符串呢? Swift 的String类型表示特定序列的Character(字符) 类型值的集合,它是值类型具有可变性 S ...

  3. JavaScript操作dom总结

    最近一直忙于新项目,真的挺费心的 从产品原型.ui.接口.真心挺费心的.好多地方都不完善!(i want say F word!!) 基础的东西又需要重新看看了! Node Node.NodeType ...

  4. java 压缩和解压zip包

    网上有关压缩和解压zip包的博文一大堆,我随便找了一个.看了看,依照自己的须要改动了一下,与各位分享一下,希望各位大神指正: package com.wangpeng.utill; import ja ...

  5. FBX导入错误 :ImportFBX Errors:

    原地址:http://www.cnblogs.com/lopezycj/archive/2012/05/16/unity3d_tuchao.html Unity3D吐槽1--FBX导入 Unity3d ...

  6. openerp config file

    [options] addons_path = /bin/openerp/addonsadmin_passwd = admincsv_internal_sep = , db_host = False ...

  7. (二)Redis 笔记——发布&订阅、事务、数据库操作

    1. Redis 发布订阅 1.1 概述 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下 ...

  8. 带圈圈的数字1~50,求50以上,不要word的

    ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿

  9. javascript中window与document对象、setInterval与setTimeout定时器的用法与区别

    一.写在前面 本人前端菜鸟一枚,学习前端不久,学习过程中有很多概念.定义在使用时容易混淆,在此给向我一样刚踏入前端之门的童鞋们归纳一下.今天给大家分享一下js中window与document对象.se ...

  10. Angularjs学习笔记6_table1

    <!DOCTYPE html><html lang="en" ng-app="plunker"><head>    < ...