XXL-JOB

基于XXL-JOB和钉钉机器人构建系统监控

旧巷老猫 提交于 2019-11-29 03:12:23
概述   线上系统挂了,服务异常了,响应超时了;系统运行结果不符合预期。。。   用户被影响,甲方爸爸不开心,后果很严重。<br>   从某种意义上讲,“在用户遇到问题之前把问题解决,问题也就不算问题了”。   文章概要: 线上环境痛点》解决方案》想象空间 。 1、痛点   以下痛点是本公司实践中遇到的痛点,痛点或许不具备通用性,但思路却可以借鉴。 1.1、在服务发布时,我们经常会遇到如下的问题 服务刚发布,是否部署成功; 服务刚发布,版本是否正确(实例运行版本是否是我想要部署的版本); 服务刚发布,文件是否缺失;   如果服务实例较少,挨个上服务器检测,也是可行的,但目前稍微有点用户的系统,都是多实例部署,一个机房动辄几十上百个实例,挨个上服务器费时费力。    事实上,如果CI & CD 给力,以上问题都将不再是问题。 1.2、在服务发布后,也会有如下问题 服务是否可用; 单个服务可用,但系统链路是否畅通呢; 同一个机房不同实例代码是否一致(人工疏忽、运维系统 等问题导致不一致);   此外,我们公司还涉及本地化部署(将公司系统打包部署到其他公司),本地化部署一段时间需要部署新版本,但我们却不知道上次部署的系统是什么时候的版本。直接部署最新版本?系统太大,关联系统太多,所有系统部署最新版本,部署及验证耗时费力,成本太高,肯定不行。 1.3、管理诉求 发布故障

log trace (3) - 仿Sleuth 支持异步LazyTraceAsyncTaskExecutor方式实现XXL-JOB的日志链路

人盡茶涼 提交于 2019-11-28 07:27:47
在bean初始化阶段,通过代理方式将其适配为自定义的 IJobHandler 实现对象XxlJobTraceWrapper。 真正 invoke时,从beanFactory中获取Tracing对象开启新的Span。 也可以类似于 仿@EnableAsync 实现自定义切面日志 文章中的方案,对IJobHandler.execute()构建StaticMethodMatcherPointcut 的Advisor方式来实现 XxlJobBeanPostProcessor implements BeanPostProcessor, BeanFactoryAware: import java.lang.reflect.Modifier; import org.aopalliance.aop.Advice; import org.springframework.aop.framework.AopConfigException; import org.springframework.aop.framework.ProxyFactoryBean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org