转自: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. solr6.6 索引 word文档

    本文是solr6.6 导入 pdf/doc/txt/json/csv/xml文件 的继续,上篇在索引文件,唯独07格式的word文档不能正常抽取数据,进过研究测试终于,记录下属过程. 其它步骤基本和s ...

  2. 【日志处理、监控ELK、Kafka、Flume等相关资料】

    服务介绍 随着实时分析技术的发展及成本的降低,用户已经不仅仅满足于离线分析.目前我们服务的用户包括微博,微盘,云存储,弹性计算平台等十多个部门的多个产品的日志搜索分析业务,每天处理约32亿条(2TB) ...

  3. C++第4次实验(基础班)—循环结构程序设计

    此次上机中的4个题目项目6.项目7(选1)必做.其他2两题可从剩下的项目中选,也可从项目7中选. [项目1:利用循环求和]求1000以内全部偶数的和(答案:250500) 要求:请编出3个程序来,分别 ...

  4. cocos2d-x 3.0rc2版公布了

    本人博客地址,转载吧亲们:http://blog.csdn.net/dawn_moon 之前做小鸟的和跑酷的时候尽管cocos2d-x出了3.0版,可是还是alpha版.当时大致看了一下发现有蛮多修改 ...

  5. 更改字段、添加字段脚本以及sql回滚

    --修改字段名称 EXEC sp_rename '[dbo].[SysMenu].[Type]', 'Position', 'COLUMN' --添加字段 alter table [dbo].[Age ...

  6. node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块

    第二章  建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...

  7. C# NPOI操作Excel(下)

    根据自己项目需求编写,仅供参考 个人建议:使用Excel模板进行导出操作.尽量避免自己生成Excel(既繁琐又容易出BUG).大多情况下导出Excel都是固定格式,使用模板导出会方便很多. publi ...

  8. NIO之缓冲区(Buffer)的数据存取

    缓冲区(Buffer) 一个用于特定基本数据类行的容器.有java.nio包定义的,所有缓冲区都是抽象类Buffer的子类. Java NIO中的Buffer主要用于与NIO通道进行交互,数据是从通道 ...

  9. Atitit.收银机小票打印功能的设计  java php c#.net版本

    Atitit.收银机小票打印功能的设计  java php c#.net版本 1. 1. 打印方式有4种:1 1.1. 1.1. 一是不经过任何修改,直接调用javascript中的window.pr ...

  10. 经常使用的Hql语句

    // HQL: Hibernate Query Language. // 特点: // >> 1,与SQL类似.SQL中的语法基本上都能够直接使用. // >> 2.SQL查询 ...