xxl-job使用遇到的问题
1、背景
最近公司在迁移定时任务,以前老的定时任务是基于quartz搭建的分布式集群服务,遇到如下几个瓶颈问题:
- 同一个任务只能有一个节点运行,其他节点不执行,导致性能低,资源也浪费
- 定时任务在抢占执行的时候(数据库锁),谁先抢到谁执行,导致有些节点忙死,有些节点一直闲置。(没有合理的调度策略)
- 当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重。性能会很低下
- quartz 的分布式仅解决了集群高可用的问题,并没有解决任务分片的问题,不能实现水平扩展(水平扩展的问题,其实通过任务分布式锁的形式也能解决)
反正,最终选定了xxl-job。
想着写写xxl-job迁移说明的,但是网上太多了,官方指导手册也挺多的,还是算了。就记录下遇到的问题+解决方法吧。
2、问题
经过一番coding、配置 之后,在xxl-job任务调度中心界面上,点击【执行一次】,调度日志显示失败,错误信息是这样子的

xxl-rpc remoting error(Unexpected end of file from server), for url : http://10.25.31.45:9999/run
这个ip是我本机的,执行器注册啥的都没问题。
先说解决办法
2.1、解决办法
确认下netty的版本是否是4.1.48.Final。
Netty3、netty4可以共存,
但是每个只依赖一个主版本即可,netty4要4.1.48+
检查下pom.xml,果然有猫腻

正常情况下,xxl-job-core 依赖的netty版本是 4.1.48.Final,在我这里变成了4.0.35~
看了下xxl-job.pom文件里面是使用的 ${netty-all.version} 属性,这说明我的项目里面有别的地方也定义了这个值,覆盖了xxl-job的4.1.48
在项目的pom文件里面定义netty-all.version 为 4.1.48.Final 就搞定了。
2.2、原因
mavan在处理依赖的时候,有如下两个原则:
- 最短路径优先
- 相同路径下配置在前面的优先
那另外一个问题,你咋知道就是netty的问题呢?
(先卖个关子,后面再读读xxl-job的源码)
xxl-job使用遇到的问题的更多相关文章
- xxl系列部署启动通用办法
http://10.10.6.186:8080/xxl-job-admin # 编译mvn compile # 清理mvn clean # 打包mvn package # 先清理后编译mvn clea ...
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- C# if中连续几个条件判断
C# if中连续几个条件判断 1.if (条件表达式1 && 条件表达式2) 当条件表达式1为true时 using System; using System.Collections. ...
- java web学习总结(三十) -------------------JSTL表达式
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- java web学习总结(二十八) -------------------JSP中的JavaBean
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...
- 关于如何使用sourcetree将本地项目提交到远端github总结?
使用sourcetree将本地项目提交到github里,目前来说还是很流行的,我也是听说好玩,所以来琢磨了一下,从环境搭建到配置好,差不多用了一下午加一晚上的时间,有点虐心,好吧,废话不多说,介绍一下 ...
- 【.net+jquery】绘制自定义表单(含源码)
前言 两年前在力控的时候就想做一个类似的功能,当时思路大家都讨论好了,诸多原因最终还是夭折了.没想到两年多后再这有重新提出要写一个绘制表单的功能.对此也是有点小激动呢?总共用时8.5天的时间基本功能也 ...
- lucene和es总结
一.首先介绍lucene涉及到的排序过程 1.1.如何自定义排序对象 你可以自定义collector对象: 亦可以自定义comparator对象: 可以自定义scoredoc对象,决定如何处理结果集合 ...
- linux split 及优化
split 虽然不好用, 但是还是可以用一下的! 有两个方式拆分, 按固定的行数, 按固定的大小. 默认是 1000 行, 后缀长度为2, 后缀长度N是说, 分片从N个字母/数字 的最小值 到 其最大 ...
随机推荐
- 【NCRE】三级网络技术 选择题易错点记录(1)
部分易错点 连接到一个集线器的多个节点不能同时发送数据帧 嵌入式安装插座用来连接双绞线 异步串行端口 PPP 同步串行端口 PPP/HPLC 对于频繁改变位置并使用DHCP获取IP地址的DNS客户端, ...
- 黑马 - poi Excel2
文件上传: //划线处值得效仿 构造用户列表:User.java 批量保存用户
- Ambassador-06-金丝雀部署
金丝雀部署:Canary Releases ambassador使用加权循环,在多个服务之间路由流量.收集所有服务的完整指标,以便比较canary和production的相对性能.这个weight的值 ...
- element UI el-autocomplete 带输入建议的输入框
项目需求:需要用户在输入框中输入公司 全名 但是为了避免用户输入不全 需要做一个带输入建议的输入框 参考:https://www.jianshu.com/p/de922caf337c
- 由孙悟空的七十二变看Java设计模式:装饰者模式
目录 应用场景 代码示例 改进代码 装饰者模式 定义 意图 主要解决问题 何时使用 优缺点 孙悟空的七十二变 应用场景 京东.天猫双十一,情人节商品大促销,各种商品有不同的促销活动 满减:满200减5 ...
- NumPy之:数据类型
目录 简介 数组中的数据类型 类型转换 查看类型 数据溢出 简介 我们知道Python中有4种数字类型,分别是int,float,bool和complex.作为科学计算的NumPy,其数据类型更加的丰 ...
- 持续集成 简介&环境搭建
1. 持续集成简介 2. 持续集成环境搭建(Jenkins) 2.1 Git 安装 2.2 JDK 1.8 安装 2.3 Tomcat 安装 2.4 Maven 简介和安装 2.5 Jenkins 安 ...
- win10 添加全局快捷键
前言 好久没写博客了,今天水一下 如何在win10 下添加一个全局唤醒的快捷键(打开截图软件) 步骤 win + Q 输入 管理工具 添加快捷方式 这里没有管理员权限,可以直接把创建好的 快捷方式 粘 ...
- js去重的两种方法
去重 去重方法和思路也很多,这里就介绍两种吧. 方法一: 1 2 3 4 5 6 7 8 9 10 11 function unique1(arr) { var res = [], ...
- ACM JAVA大数
有的水题自己模拟下大数就过了,有的各种坑,天知道曾经因为大数wa了多少次....自己最近学者用JAVA,下面是自己总结的JAVA常用知识.. 框架 import java.util.Scanner; ...