http拨测是什么意思_快速构建拨测系统

背景

当前项目需要一个拨测系统来检测服务是否正常运行,拨测系统需要满足以下需求:

支持对接口请求结果做判断。

支持对接口的耗时做判断。

支持重试:可能在某一瞬间网络出现了延迟,导致接口请求失败,所以需要重试,连续重试N次失败才算异常。

失败告警,可配置不同的告警接收人。

通用、可配置:支持各种场景的接口协议。

图表展示(可选)。

方案

拨测系统原理上就是定时检查服务,那是否可以偷懒,拿开源的定时任务系统来改造呢。基于这种想法,在研究多个开源项目之后,选择了xxl-job(当前版本2.2.1)。

改造

1. 添加任务

改造任务界面

以上是xxl-job添加定时任务的界面,先修改jobinfo.index.ftl文件,隐藏掉跟监控无关的字段,隐藏的字段相当于采用了默认值。效果如下:

这里保留了:

任务描述。

Cron:自定义配置执行间隔。

运行模式:常规场景,通过BEAN+JobHandler即可满足, 当拨测的接口协议很复杂,无法使用通用的拨测方法时,这里可以选择GUL模式来自定义请求脚本。

JobHandler:选择拨测类别,当前仅提供了接口HTTP拨测,后续会添加其他的拨测类型,比如redis检查。

任务超时时间:可以当做接口性能检测,判断性能是否符合预期。

失败重试次数:可能在某一瞬间网络出现了延迟,导致接口请求失败,所以需要重试,连续重试N次失败才算异常。

负责人。

报警邮件:拨测失败报警,天企业微信名,多个之间用','分隔。

任务参数:输入拨测时需要的参数,比如拨测的URL。

开发接口拨测Handler

在executor项目开发处理器(xxl-job分为admin和executor两个项目,admin是管理、分发,executor执行定时任务业务逻辑),拨测URL等参数由任务参数来输入,这里选择json作为输入格式,定义了几个json字段:

url:拨测地址,必填。

method:HTTP请求Method,可选,默认是POST。

resultKeys:字符串数组格式,当接口返回值里包含了数组里的每一项时,才算拨测成功,可选。

postBody:POST包体,可选。

HTPP拨测Handler代码:

@Component

@Slf4j

public class DialTestHandler {

private WebClient webClient;

public DialTestHandler() {

webClient = WebClient.builder()

.clientConnector(new ReactorClientHttpConnector(

// 允许重定向

HttpClient.create().followRedirect(true)

)).build();

}

/**

* @param param

* @return com.xxl.job.core.biz.model.ReturnT

* @author

* @date

*/

&

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值