xuxueli

xuxueli 查看完整档案

上海编辑  |  填写毕业院校大众点评网  |  研发 编辑 github.com/xuxueli 编辑
编辑

www.xuxueli.com

个人动态

xuxueli 发布了文章 · 4月16日

XXL-RPC v1.6.0,分布式服务框架

Release Notes

  • 1、为方便维护,合并xxl-registry至xxl-rpc,模块名为xxl-rpc-admin;
  • 2、一致性哈希路由策略优化:默认虚拟节点数量调整为100,提高路由的均衡性;
  • 3、RPC Client端,复用单例EventLoopGroup线程池,降低资源开销;
  • 4、RPC Server端,新增属性 ”注册地址/registryAddress“,优先使用该属性作为注册地址,为空时使用服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。

简介

XXL-RPC 是一个分布式服务框架,提供稳定高性能的RPC远程服务调用功能。拥有"高性能、分布式、注册中心、负载均衡、服务治理"等特性。现已开放源代码,开箱即用。

输入图片说明

特性

  • 1、快速接入:接入步骤非常简洁,两分钟即可上手;
  • 2、服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性;
  • 3、多调用方案:支持 SYNC、ONEWAY、FUTURE、CALLBACK 等方案;
  • 4、多通讯方案:支持 TCP 和 HTTP 两种通讯方式进行服务调用;其中 TCP 提供可选方案 NETTY 或 MINA ,HTTP 提供可选方案 NETTY_HTTP 或 Jetty;
  • 5、多序列化方案:支持 HESSIAN、HESSIAN1、PROTOSTUFF、KRYO、JACKSON 等方案;
  • 6、负载均衡/软负载:提供丰富的负载均衡策略,包括:轮询、随机、LRU、LFU、一致性HASH等;
  • 7、注册中心:可选组件,支持服务注册并动态发现;可选择不启用,直接指定服务提供方机器地址通讯;选择启用时,内置可选方案:“XXL-REGISTRY 轻量级注册中心”(推荐)、“ZK注册中心”、“Local注册中心”等;
  • 8、服务治理:提供服务治理中心,可在线管理注册的服务信息,如服务锁定、禁用等;
  • 9、服务监控:可在线监控服务调用统计信息以及服务健康状况等(计划中);
  • 10、容错:服务提供方集群注册时,某个服务节点不可用时将会自动摘除,同时消费方将会移除失效节点将流量分发到其余节点,提高系统容错能力。
  • 11、解决1+1问题:传统分布式通讯一般通过nginx或f5做集群服务的流量负载均衡,每次请求在到达目标服务机器之前都需要经过负载均衡机器,即1+1,这将会把流量放大一倍。而XXL-RPC将会从消费方直达服务提供方,每次请求直达目标机器,从而可以避免上述问题;
  • 12、高兼容性:得益于优良的兼容性与模块化设计,不限制外部框架;除 spring/springboot 环境之外,理论上支持运行在任何Java代码中,甚至main方法直接启动运行;
  • 13、泛化调用:服务调用方不依赖服务方提供的API;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 4月14日

XXL-JOB v2.2.0 发布 | 跨语言特性增强

v2.2.0 Release Notes

  • 1、RESTful API:调度中心与执行器提供语言无关的 RESTful API 服务,第三方任意语言可据此对接调度中心或者实现执行器。
  • 2、任务复制功能:点击复制是弹出新建任务弹框,并初始化被复制任务信息;
  • 3、任务手动执行一次的时候,支持指定本次执行的机器地址,为空则从执行器获取;
  • 4、任务结果丢失处理:调度记录停留在 "运行中" 状态超过10min,且对应执行器心跳注册失败不在线,则将本地调度主动标记失败;
  • 5、调度中心升级springboot2.x;因此,系统要求JDK8+;
  • 6、XxlJob注解扫描方式优化,支持查找父类以及接口和基于类代理等常见情况;修复任务为空时小概率NPE问题;
  • 7、移除旧类注解JobHandler,推荐使用基于方法注解 "@XxlJob" 的方式进行任务开发;(如需保留类注解JobHandler使用方式,可以参考旧版逻辑定制开发);
  • 8、任务告警组件模块化:如果需要新增一种告警方式,只需要新增一个实现 "com.xxl.job.admin.core.alarm.JobAlarm" 接口的告警实现即可,更加灵活、方便定制;
  • 9、调度中心国际化完善:新增 "中文繁体" 支持。默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;
  • 10、执行器注册逻辑优化:新增配置项 ”注册地址 / xxl.job.executor.address“,优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
  • 11、默认数据库连接池调整为hikari,移除tomcat-jdbc依赖;
  • 12、多个项目依赖升级至较新稳定版本,如mybatis、groovy和mysql驱动等;
  • 13、执行器优雅停机优化,修复任务线程中断未join导致回调丢失的问题;
  • 14、一致性哈希路由策略优化:默认虚拟节点数量调整为100,提高路由的均衡性;
  • 15、通用HTTP任务Handler(httpJobHandler)优化,扩展自定义参数信息,示例参数如下;
url: http://www.xxx.com
method: get 或 post
data: post-data
  • 16、SQL脚本编码默认utf8mb4执行,避免小概率下容器环境中乱码问题;
  • 17、Web IDE交互问题修复:输入源码备注之后按回车跳转error问题处理;
  • 18、执行器初始化逻辑优化:修复懒加载的Bean被提前初始化问题;
  • 19、执行器注册默认值优化;
  • 20、修复bootstrap.min.css.map 404问题;
  • 21、执行器UI交互优化,移除冗余order属性;
  • 22、执行备注消息长度限制,修复数据超长无法存储导致导致回调失败的问题;

注意:XxlJobSpringExecutor组件个别字段调整:“appName” 调整为 “appname” ,升级时该组件时需要注意;

简介

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

输入图片说明

特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
  • 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
  • 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
  • 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
  • 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 16、任务进度监控:支持实时监控任务进度;
  • 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
  • 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 30、跨语言:调度中心与执行器提供语言无关的 RESTful API 服务,第三方任意语言可据此对接调度中心或者实现执行器。除此之外,还提供了 “多任务模式”和“httpJobHandler”等其他跨语言方案;
  • 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
  • 33、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
  • 34、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 35、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-12-13

XXL-JOB v2.1.2 发布,分布式任务调度平台

v2.1.2 Release Notes

  • 1、方法任务支持:由原来基于JobHandler类任务开发方式,优化为支持基于方法的任务开发方式;因此,可以支持单个类中开发多个任务方法,进行类复用
@XxlJob("demoJobHandler")
public ReturnT<String> execute(String param) {
    XxlJobLogger.log("hello world");
    return ReturnT.SUCCESS;
}
  • 2、移除commons-exec,采用原生方式实现,降低第三方依赖;
  • 3、执行器回调乱码问题修复;
  • 4、调度中心dispatcher servlet加载顺序优化;
  • 5、执行器回调地址https兼容支持;
  • 6、多个项目依赖升级至较新稳定版本;
  • 注意:最新版本 "XxlJobSpringExecutor" 逻辑有调整,历史项目中该组件的配置方式请参考Sample示例项目进行调整,尤其注意需要移除组件的init和destroy方法;

简介

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

输入图片说明

特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”基于集群Quartz实现并支持集群部署,可保证调度中心HA;
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
  • 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
  • 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
  • 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方面的扩展短信、钉钉等告警方式;
  • 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 16、任务进度监控:支持实时监控任务进度;
  • 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
  • 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 30、跨平台:原生提供通用HTTP任务Handler(Bean任务,"HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
  • 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;

文档地址

技术交流

社区公众号

快速联系作者 + 技术干货 + 文章分享

image

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-11-24

XXL-JOB v2.1.1 发布,分布式任务调度平台

XXL-JOB 正在角逐 “2019年度最受欢迎中国开源软件”,期待您宝贵的一票!
投票链接


v2.1.1 Release Notes

  • 1、 调度中心日志自动清理功能(至此,调度中心/执行器均支持日志自动清理,过期天数均默认设置为30天):调度中心新增配置项("xxl.job.logretentiondays")日志保存天数,过期日志自动清理;解决海量日志情况下日志表慢SQL问题;限制大于等于7时生效,否则关闭清理功能,默认为30;
  • 2、 调度报表优化:新增日志报表的存储表,三天内的任务日志会以每分钟一次的频率异步同步至报表中;任务报表仅读取报表数据,极大提升加载速度;
  • 3、 Cron在线生成工具:任务新增、编辑框通过组件在线生成Cron表达式;
  • 4、 Cron下次执行时间查询:支持通过界面在线查看后续连续5次执行时间;
  • 5、 调度中心新增应用健康检查功能,借助“spring-boot-starter-actuator”,相对地址 “/actuator/health”;
  • 6、 DB脚本默认编码改为utf8mb4,修复字符乱码问题(建议Mysql版本5.7+);
  • 7、 调度中心任务平均分配,触发组件每次获取与线程池数量相关数量的任务,避免大量任务集中在单个调度中心集群节点;
  • 8、 任务触发组件优化,预加载频率正常1s一次,当预加载轮空时主动休眠一个加载周期,动态降低加载频率从而降低DB压力;
  • 9、 调度组件优化:针对永远不会触发的Cron禁止配置和启动;任务Cron最后一次触发后再也不会触发时,比如一次性任务,主动停止相关任务;
  • 10、DB重连优化,修复DB宕机重连后任务调度停止的问题,重连后自动加入调度集群触发任务调度;
  • 11、注册监控线程优化,降低死锁几率;
  • 12、调度中心日志删除优化,改为分页获取ID并根据ID删除的方式,避免批量删除海量日志导致死锁问题;
  • 13、任务重试时参数丢失的问题修复;
  • 14、调度中心移除SQL中的 "now()" 函数;集群部署时不再依赖DB时钟,仅需要保证调度中心应用节点时钟一致即可;
  • 15、任务触发组件加载顺序调整,避免小概率情况下组件随机加载顺序导致的I18N的NPE问题;
  • 16、JobThread自销毁优化,避免并发触发导致triggerQueue中任务丢失问题;
  • 17、调度中心密码限制18位,修复修改密码超过18位无法登陆的问题;
  • 18、任务告警组件分页参数无效问题修复;
  • 19、升级xxl-rpc版本:服务端线程优化,降低线程内存开销;IpUtil优化:增加连通性校,过滤明确非法的网卡;
  • 20、调度中心回调API服务改为restful方式;
  • 21、UI优化,任务列表和日志列表数据表格宽度比例调整,避免数据换行提升体验;
  • 22、登录界面取消默认填写的登录账号密码;
  • 23、执行器表属性调整,"顺序" 属性调整为整型,解决执行器数据较多时无法正确排序的问题;
  • 24、任务列表交互优化,支持查看任务所属执行器的注册节点;
  • 25、项目依赖升级至较新稳定版本,如spring、spring-boot、mybatis、slf4j、groovy等等;

简介

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

输入图片说明

特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
  • 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
  • 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
  • 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
  • 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 16、任务进度监控:支持实时监控任务进度;
  • 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
  • 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 30、跨平台:原生提供通用HTTP任务Handler(Bean任务,"HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
  • 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
  • 33、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;;
  • 34、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 35、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-11-19

XXL-RPC v1.4.2,分布式服务框架

XXL-JOB 正在角逐 “2019年度最受欢迎中国开源软件”,期待您宝贵的一票!
投票链接

Release Notes

  • 1、长连心跳保活:客户端周期性发送心跳请求给服务端保活;服务端连续三次未收到心跳时,销毁连接;
  • 2、服务线程优化,支持自定义线程参数;
  • 3、API重构:初始化枚举改为接口实例,方便扩展;
  • 4、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;
  • 5、Netty Http客户端优化,识别并过滤非法响应数据;
  • 6、通讯方案收敛:主推Netty和Netty_Http,移除Mina和Jetty内置扩展,如有需求自行扩展维护;
  • 7、序列化方案收敛:主推HESSIAN和HESSIAN1,移除protostuff、KRYO、JACKSON内置扩展,如有需求自行扩展维护;
  • 8、升级依赖版本,如netty/mina/hessian/jackson/zookeeper等;

简介

XXL-RPC 是一个分布式服务框架,提供稳定高性能的RPC远程服务调用功能。拥有"高性能、分布式、注册中心、负载均衡、服务治理"等特性。现已开放源代码,开箱即用。

输入图片说明

特性

  • 1、快速接入:接入步骤非常简洁,两分钟即可上手;
  • 2、服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性;
  • 3、多调用方案:支持 SYNC、ONEWAY、FUTURE、CALLBACK 等方案;
  • 4、多通讯方案:支持 TCP 和 HTTP 两种通讯方式进行服务调用;其中 TCP 提供可选方案 NETTY 或 MINA ,HTTP 提供可选方案 NETTY_HTTP 或 Jetty;
  • 5、多序列化方案:支持 HESSIAN、HESSIAN1、PROTOSTUFF、KRYO、JACKSON 等方案;
  • 6、负载均衡/软负载:提供丰富的负载均衡策略,包括:轮询、随机、LRU、LFU、一致性HASH等;
  • 7、注册中心:可选组件,支持服务注册并动态发现;可选择不启用,直接指定服务提供方机器地址通讯;选择启用时,内置可选方案:“XXL-REGISTRY 轻量级注册中心”(推荐)、“ZK注册中心”、“Local注册中心”等;
  • 8、服务治理:提供服务治理中心,可在线管理注册的服务信息,如服务锁定、禁用等;
  • 9、服务监控:可在线监控服务调用统计信息以及服务健康状况等(计划中);
  • 10、容错:服务提供方集群注册时,某个服务节点不可用时将会自动摘除,同时消费方将会移除失效节点将流量分发到其余节点,提高系统容错能力。
  • 11、解决1+1问题:传统分布式通讯一般通过nginx或f5做集群服务的流量负载均衡,每次请求在到达目标服务机器之前都需要经过负载均衡机器,即1+1,这将会把流量放大一倍。而XXL-RPC将会从消费方直达服务提供方,每次请求直达目标机器,从而可以避免上述问题;
  • 12、高兼容性:得益于优良的兼容性与模块化设计,不限制外部框架;除 spring/springboot 环境之外,理论上支持运行在任何Java代码中,甚至main方法直接启动运行;
  • 13、泛化调用:服务调用方不依赖服务方提供的API;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-11-18

XXL-REGISTRY v1.1.0 发布,分布式服务注册中心

XXL-JOB 正在角逐 “2019年度最受欢迎中国开源软件”,期待您宝贵的一票!
投票链接

Release Notes

  • 1.注册日志文件加载方式优化,修复文件名乱码问题;
  • 2.修复服务注册version不匹配问题;
  • 3.升级依赖版本,如slf4j-api/spring-boot/mybatis/mysql等;

简介

XXL-REGISTRY 是一个轻量级分布式服务注册中心,拥有"轻量级、秒级注册上线、多环境、跨语言、跨机房"等特性。现已开放源代码,开箱即用。

输入图片说明

特性

  • 1、轻量级:基于DB与磁盘文件,只需要提供一个DB实例即可,无第三方依赖;
  • 2、实时性:借助内部广播机制,新服务上线、下线,可以在1s内推送给客户端;
  • 3、数据同步:注册中心会定期全量同步数据至磁盘文件,清理无效服务,确保服务数据实时可用;
  • 4、性能:服务发现时仅读磁盘文件,性能非常高;服务注册、摘除时通过磁盘文件校验,防止重复注册操作;
  • 5、扩展性:可方便、快速的横向扩展,只需保证服务注册中心配置一致即可,可借助负载均衡组件如Nginx快速集群部署;
  • 6、多状态:服务内置三种状态:

    • 正常状态=支持动态注册、发现,服务注册信息实时更新;
    • 锁定状态=人工维护注册信息,服务注册信息固定不变;
    • 禁用状态=禁止使用,服务注册信息固定为空;
  • 7、跨语言:注册中心提供HTTP接口(RESTFUL 格式)供客户端实用,语言无关,通用性更强;
  • 8、兼容性:项目立项之初是为XXL-RPC量身设计,但是不限于XXL-RPC使用。兼容支持任何服务框架服务注册实用,如dubbo、springboot等;
  • 9、跨机房:得益于服务注册中心集群关系对等特性,集群各节点提供幂等的配置服务;因此,异地跨机房部署时,只需要请求本机房服务注册中心即可,实现异地多活;
  • 10、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现 "服务注册中心" 产品开箱即用;
  • 11、访问令牌(accessToken):为提升系统安全性,注册中心和客户端进行安全性校验,双方AccessToken匹配才允许通讯;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-10-02

震鲸! XXL 社区即将解散 20 个交流群!

[ XXL 社区] 成立于 2015 年,是专门为支持开源软件项目而创办的一个非盈利性组织,负责发行和维护 XXL 系列开源软件,崇尚开放、自由和分享。

截至目前,XXL 社区已经孵化出多个流行开源产品,包括 github 超 10000 星项目 xxl-job,以及码云最有价值开源项目( GVP ) 4 个,即 xxl-job、xxl-sso、xxl-api、xxl-conf 等。

社区主页: http://www.xuxueli.com/
Github 地址: https://github.com/xuxueli
Gitee 地址: https://gitee.com/xuxueli0323

至今,社区群用户累计超过 7000 人,成立了 30 个交流群。但是,这 30 个社区群多数是 200 人小群,不方便社区用户相互沟通交流。

因此,决定将社区“群 1 ~ 群 10”逐步升级为 2000 人大群,并全力维护。同时,将 “群 11 ~ 群 30”解散并将群成员合并至大群中。大群信息如下:

  • XXL 社区 10 群(500 人):707783450 (少量位置)
  • XXL 社区 9 群(500 人):689736471 (少量位置)
  • XXL 社区 8 群(500 人):591953272 (少量位置)
  • XXL 社区 7 群(500 人):663940004 (少量位置)
  • XXL 社区 6 群(500 人):399758605 (少量位置)
  • XXL 社区 5 群(500 人):138274130 (少量位置)
  • XXL 社区 4 群(500 人):464762661 (满)
  • XXL 社区 3 群(500 人):242151780 (满)
  • XXL 社区 2 群(1000 人):438249535 (大量位置)
  • XXL 社区 1 群(2000 人):367260654 (大量位置)
  • XXL 社区管理群:644672767 (邀请制)

欢迎社区用户加入上面社区大群中,社区大群中将会持续提供免费的技术支持!也欢迎关注本公众号,可以快速联系作者,公众号会定期发布技术干货文章。

查看完整的社区交流群信息,请前往: http://www.xuxueli.com/page/c...

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-07-07

XXL-JOB v2.1.0,分布式任务调度平台

v2.0.2 Release Notes

  • 1、自研调度组件,移除quartz依赖:一方面是为了精简系统降低冗余依赖,另一方面是为了提供系统的可控度与稳定性;

    • 触发:单节点周期性触发,运行事件如delayqueue;
    • 调度:集群竞争,负载方式协同处理,锁竞争-更新触发信息-推送时间轮-锁释放-锁竞争;
  • 2、底层表结构重构:移除11张quartz相关表,并对现有表结构优化梳理;
  • 3、任务日志主键调整为long数据类型,防止海量日志情况下数据溢出;
  • 4、底层线程模型重构:移除Quartz线程池,降低系统线程与内存开销;
  • 5、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 6、权限管理:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
  • 7、调度线程池参数调优;
  • 8、注册表索引优化,缓解锁表问题;
  • 9、新增Jboot执行器Sample示例项目;
  • 10、任务列表优化,支持根据 "任务状态"、"负责人" 属性筛选任务;
  • 11、任务日志列表交互优化,操作按钮合并为分割按钮;
  • 12、项目依赖升级至较新稳定版本,如spring、springboot、groovy、xxl-rpc等等;并清理冗余POM;
  • 13、升级xxl-rpc至较新版本,修复代理服务初始化时远程服务不可用导致长连冗余创建的问题;
  • 14、首页调度报表的日期排序在TIDB下乱序问题修复;
  • 15、调度中心与执行器双向通讯超时时间调整为3s;
  • 16、调度组件销毁流程优化,先停止调度线程,然后等待时间轮内存量任务处理完成,最终销毁时间轮线程;
  • 17、执行器回调线程优化,回调地址为空时销毁问题修复;
  • 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码;
  • 19、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;

简介

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

输入图片说明

特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
  • 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
  • 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
  • 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
  • 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 16、任务进度监控:支持实时监控任务进度;
  • 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
  • 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 30、跨平台:原生提供通用HTTP任务Handler(Bean任务,"HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
  • 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
  • 33、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;;
  • 34、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 35、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-07-07

XXL-JOB v2.1.0,分布式任务调度平台

v2.0.2 Release Notes

  • 1、自研调度组件,移除quartz依赖:一方面是为了精简系统降低冗余依赖,另一方面是为了提供系统的可控度与稳定性;

    • 触发:单节点周期性触发,运行事件如delayqueue;
    • 调度:集群竞争,负载方式协同处理,锁竞争-更新触发信息-推送时间轮-锁释放-锁竞争;
  • 2、底层表结构重构:移除11张quartz相关表,并对现有表结构优化梳理;
  • 3、任务日志主键调整为long数据类型,防止海量日志情况下数据溢出;
  • 4、底层线程模型重构:移除Quartz线程池,降低系统线程与内存开销;
  • 5、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 6、权限管理:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
  • 7、调度线程池参数调优;
  • 8、注册表索引优化,缓解锁表问题;
  • 9、新增Jboot执行器Sample示例项目;
  • 10、任务列表优化,支持根据 "任务状态"、"负责人" 属性筛选任务;
  • 11、任务日志列表交互优化,操作按钮合并为分割按钮;
  • 12、项目依赖升级至较新稳定版本,如spring、springboot、groovy、xxl-rpc等等;并清理冗余POM;
  • 13、升级xxl-rpc至较新版本,修复代理服务初始化时远程服务不可用导致长连冗余创建的问题;
  • 14、首页调度报表的日期排序在TIDB下乱序问题修复;
  • 15、调度中心与执行器双向通讯超时时间调整为3s;
  • 16、调度组件销毁流程优化,先停止调度线程,然后等待时间轮内存量任务处理完成,最终销毁时间轮线程;
  • 17、执行器回调线程优化,回调地址为空时销毁问题修复;
  • 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码;
  • 19、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;

简介

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

输入图片说明

特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
  • 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
  • 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
  • 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
  • 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 16、任务进度监控:支持实时监控任务进度;
  • 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
  • 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 30、跨平台:原生提供通用HTTP任务Handler(Bean任务,"HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
  • 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
  • 33、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;;
  • 34、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 35、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

xuxueli 发布了文章 · 2019-04-22

XXL-JOB v2.0.2,分布式任务调度平台

v2.0.2 Release Notes

  • 1、底层通讯方案优化:升级较新版本xxl-rpc,由"JETTY"方案调整为"NETTY_HTTP"方案,执行器内嵌netty-http-server提供服务,调度中心复用容器端口提供服务;
  • 2、任务告警逻辑调整,改为通过扫描失败日志方式触发。一方面精确扫描失败任务,降低扫描范围;另一方面取消内存队列,降低线程内存消耗;
  • 3、Quartz触发线程池废弃并替换为 "XxlJobThreadPool",降低线程切换、内存占用带来的消耗,提高调度性能;
  • 4、调度线程池隔离,拆分为"Fast"和"Slow"两个线程池,1分钟窗口期内任务耗时达500ms超过10次,该窗口期内判定为慢任务,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
  • 5、执行器热部署时JobHandler重新初始化,修复由此导致的 "jobhandler naming conflicts." 问题;
  • 6、新增Class的加载缓存,解决频繁加载Class会使jvm的方法区空间不足导致OOM的问题;
  • 7、任务支持更换绑定执行器,方便任务分组转移和管理;
  • 8、调度中心告警邮件发送组件改为 “spring-boot-starter-mail”;
  • 9、记住密码功能优化,选中时永久记住;非选中时关闭浏览器即登出;
  • 10、项目依赖升级至较新稳定版本,如quartz、spring、jackson、groovy、xxl-rpc等等;
  • 11、精简项目,取消第三方依赖,如 commons-collections4、commons-lang3 ;
  • 12、执行器回调日志落盘方案复用RPC序列化方案,并移除Jackson依赖;
  • 13、底层Log调优,应用正常终止取消异常栈信息打印;
  • 14、交互优化,尽量避免新开页面窗口;仅WebIDE支持新开页,并提供窗口快速关闭按钮;任务启、停、删除、触发等轻操作提示改为toast方式,
  • 15、任务暂停、删除优化,避免quartz delete不完整导致任务脏数据;
  • 16、任务回调、心跳注册成功日志优化,非核心常规日志调整为debug级别,降低冗余日志输出;
  • 17、调整首页报表默认区间为本周,避免日志量太大查询缓慢;
  • 18、LRU路由更新不及时问题修复;
  • 19、任务失败告警邮件发送逻辑优化;
  • 20、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件;
  • 21、执行器优雅停机优化;
  • 22、连接池配置优化,增强连接有效性验证;
  • 23、JobHandler#msg长度限制,修复异常情况下日志超长导致内存溢出的问题;
  • 24、升级xxl-rpc至较新版本,修复springboot 2.x版本兼容性问题;

简介

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

输入图片说明

特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”基于集群Quartz实现并支持集群部署,可保证调度中心HA;
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
  • 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
  • 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
  • 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方面的扩展短信、钉钉等告警方式;
  • 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 16、任务进度监控:支持实时监控任务进度;
  • 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
  • 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 30、跨平台:原生提供通用HTTP任务Handler(Bean任务,"HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
  • 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
  • 33、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;;

文档地址

技术交流

查看原文

赞 0 收藏 0 评论 0

认证与成就

  • 获得 20 次点赞
  • 获得 7 枚徽章 获得 0 枚金徽章, 获得 1 枚银徽章, 获得 6 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

  • 分布式任务调度平台XXL-JOB

    XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

注册于 2016-05-14
个人主页被 501 人浏览