范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

分布式定时任务框架选型

  为什么我们需要定时任务
  我们先思考下面几个业务场景的解决方案:  支付系统每天凌晨1点跑批,进行一天清算,每月1号进行上个月清算  电商整点抢购,商品价格8点整开始优惠  12306购票系统,超过30分钟没有成功支付订单的,进行回收处理  商品成功发货后,需要向客户发送短信提醒
  类似的业务场景非常多,我们怎么解决?
  很多业务场景需要我们某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。一般来说,系统可以使用消息传递代替部分定时任务,两者有很多相似之处,可以相互替换场景。
  如,上面发货成功发短信通知客户的业务场景,我们可以在发货成功后发送MQ消息到队列,然后去消费mq消息,发送短信。
  但在某些场景下不能互换:  a)时间驱动/事件驱动:内部系统一般可以通过时间来驱动,但涉及到外部系统,则只能使用时间驱动。如怕取外部网站价格,每小时爬一次
  b)批量处理/逐条处理:批量处理堆积的数据更加高效,在不需要实时性的情况下比消息中间件更有优势。而且有的业务逻辑只能批量处理。如移动每个月结算我们的话费
  c)实时性/非实时性:消息中间件能够做到实时处理数据,但是有些情况下并不需要实时,比如:vip升级
  d)系统内部/系统解耦:定时任务调度一般是在系统内部,而消息中间件可用于两个系统间
  有哪些定时任务的框架  单机timer:是一个定时器类,通过该类可以为指定的定时任务进行配置。TimerTask类是一个定时任务类,该类实现了Runnable接口,缺点异常未检查会中止线程  ScheduledExecutorService:相对延迟或者周期作为定时任务调度,缺点没有绝对的日期或者时间  spring定时框架:配置简单功能较多,如果系统使用单机的话可以优先考虑spring定时器  分布式Quartz:Java事实上的定时任务标准。但Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能  TBSchedule:阿里早期开源的分布式任务调度系统。代码略陈旧,使用timer而非线程池执行任务调度。众所周知,timer在处理异常状况时是有缺陷的。而且TBSchedule作业类型较为单一,只能是获取/处理数据一种模式。还有就是文档缺失比较严重  elastic-job:当当开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分布式协调,实现任务高可用以及分片,目前是版本2.15,并且可以支持云开发。  Saturn:是唯品会自主研发的分布式的定时任务的调度平台,基于当当的elastic-job 版本1开发,并且可以很好的部署到docker容器上。  xxl-job: 是大众点评员工徐雪里于2015年发布的分布式任务调度平台,是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
  分布式任务调度系统对比
  参与对比的可选系统方案:elastic——job (以下简称E-Job)与 xxx-job(以下简称X-Job)   项目背景及社区力量
  X-Job  :大众点评公司下员工许雪里、贡献者 3人; github有2470star、1015fork | QQ讨论群6个 | 有登记在使用的超过40家公司 | 文档齐全 E-Job  :当当网开源,贡献者17人; github有2524star、1015fork | QQ讨论群1个、源码讨论群1个 | 有登记在使用的超过50家公司 | 文档齐全   有明确的发展计划 支持集群部署
  X-Job  :集群部署唯一要求为:保证每个集群节点配置(db和登陆账号等)保持一致。调度中心通过db配置区分不同集群。
  执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。集群部署唯一要求为:保证集群中每个执行器的配置项 "xxl.job.admin.addresses/调度中心地址" 保持一致,执行器根据该配置进行执行器自动注册等操作。
  E-Job  :重写Quartz基于数据库的分布式功能,改用Zookeeper实现注册中心
  作业注册中心:基于Zookeeper和其客户端Curator实现的全局作业注册控制中心。用于注册,控制和协调分布式作业执行。   多节点部署时任务不能重复执行
  X-Job  :使用Quartz基于数据库的分布式功能
  E-Job  :将任务拆分为n个任务项后,各个服务器分别执行各自分配到的任务项。一旦有新的服务器加入集群,或现有服务器下线,elastic-job将在保留本次任务执行不变的情况下,下次任务开始前触发任务重分片。 日志可追溯
  X-Job  :支持,有日志查询界面
  E-Job  :可通过事件订阅的方式处理调度过程的重要事件,用于查询、统计和监控。Elastic-Job目前提供了基于关系型数据库两种事件订阅方式记录事件。
  监控告警
  X-Job  :调度失败时,将会触发失败报警,如发送报警邮件。
  任务调度失败时邮件通知的邮箱地址,支持配置多邮箱地址,配置多个邮箱地址时用逗号分隔
  E-Job  :通过事件订阅方式可自行实现
  作业运行状态监控、监听作业服务器存活、监听近期数据处理成功、数据流类型作业(可通过监听近期数据处理成功数判断作业流量是否正常,如果小于作业正常处理的阀值,可选择报警。)、监听近期数据处理失败(可通过监听近期数据处理失败数判断作业处理结果,如果大于0,可选择报警。)   弹性扩容缩容
  X-Job  :使用Quartz基于数据库的分布式功能,服务器超出一定数量会给数据库造成一定的压力
  E-Job  :通过zk实现各服务的注册、控制及协调 支持并行调度
  X-Job  :调度系统多线程(默认10个线程)触发调度运行,确保调度精确执行,不被堵塞。
  E-Job  :采用任务分片方式实现。将一个任务拆分为n个独立的任务项,由分布式的服务器并行执行各自分配到的分片项。 高可用策略
  X-Job  :"调度中心"通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  E-Job  :调度器的高可用是通过运行几个指向同一个ZooKeeper集群的Elastic-Job-Cloud-Scheduler实例来实现的。ZooKeeper用于在当前主Elastic-Job-Cloud-Scheduler实例失败的情况下执行领导者选举。通过至少两个调度器实例来构成集群,集群中只有一个调度器实例提供服务,其他实例处于"待命"状态。当该实例失败时,集群会选举剩余实例中的一个来继续提供服务。 失败处理策略
  X-Job  :调度失败时的处理策略,策略包括:失败告警(默认)、失败重试;
  E-Job  :弹性扩容缩容在下次作业运行前重分片,但本次作业执行的过程中,下线的服务器所分配的作业将不会重新被分配。失效转移功能可以在本次作业运行中用空闲服务器抓取孤儿作业分片执行。同样失效转移功能也会牺牲部分性能。
  动态分片策略
  X-Job  :分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发对应集群中所有执行器执行一次任务,同时传递分片参数;可根据分片参数开发分片任务;
  E-Job  :支持多种分片策略,可自定义分片策略 默认包含三种分片策略:基于平均分配算法的分片策略、 作业名的哈希值奇偶数决定IP升降序算法的分片策略、根据作业名的哈希值对Job实例列表进行轮转的分片策略,支持自定义分片策略
  elastic-job的分片是通过zookeeper来实现的。分片的分片由主节点分配,如下三种情况都会触发主节点上的分片算法执行:a、新的Job实例加入集群 b、现有的Job实例下线(如果下线的是leader节点,那么先选举然后触发分片算法的执行) c、主节点选举"   和quartz框架对比调用API的的方式操作任务,不人性化;  需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。  调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况加,此时调度系统的性能将大大受限于业务;  Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能。另外,搜索公众号python人工智能技术后台回复"大礼包",获取一份惊喜礼包。  综合对比
  总结和结论
  共同点:
  E-Job和X-job都有广泛的用户基础和完整的技术文档,都能满足定时任务的基本功能需求。
  不同点:
  X-Job 侧重的业务实现的简单和管理的方便,学习成本简单,失败策略和路由策略丰富。推荐使用在"用户基数相对少,服务器数量在一定范围内"的情景下使用。
  E-Job 关注的是数据,增加了弹性扩容和数据分片的思路,以便于更大限度的利用分布式服务器的资源。但是学习成本相对高些,推荐在"数据量庞大,且部署服务器数量较多"时使用。
  附定时任务的其他方案
  发货后超过10天未收货时系统自动确认收货的多种实现方式:  每天定时半夜筛选第二天 可以自动确认收货的订单,然后第二天 每10分钟 执行一次确认收货 开销不会太大吧 时间也相对精确
  自动确认收货这个状态如果仅仅是让客户端看的话,等用户下一次上线的时间,做一次运算就可以了。
  延迟和定时消息投递
  ActiveMQ提供了一种broker端消息定时调度机制。适用于:1、不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,2、想让消息没隔一定时间投递一次,一共投递指定的次数
  RabbitMQ可以针对Queue和Message设置 x-message-tt,来控制消息的生存时间,如果超时,则消息变为dead letter。利用DLX,当消息在一个队列中变成死信后,它能被重新publish到另一个Exchange。这时候消息就可以重新被消费。

诗与远方流浪诗人穷游西藏,风和日丽是需要勇气流浪诗人小白环球之旅每个人都想来一场说走就走的旅行,可是现实无情的打自己的脸。最主要肯定是经济实力不允许呀!大部分人都是因为手里没有多少钱,又要养老人养孩子,所以导致一直在不停的工春分,趁着风和日丽出门踏青,莫要辜负了好春光春日生活打卡季春日踏青之爬山!早上,伴着那充满活力朝阳,我和朋友约定好一起去爬山,刚刚到天门山景区脚下的时候,就能看到保持着它那纯正天然原貌的山,山上有人工的小路或是石梯,我向一眼风和日丽,不规则连衣裙,让你成为时尚个性怡然自得的女子春天,到一个愉悦的周末,约上几个好友,到周边游山玩水,一定要将自己打扮得漂亮一些,随着温度越来越高,春日的暖阳,洒在身上,已经让人感觉到了暖暖的感觉,这个时节,穿上一件连衣裙,简约风和日丽的日子,怎么远离春敏冬天向春天转换的过程中,冷暖空气又频繁交流,会出现非常集中的皮肤反应,很多MM的脸部肌肤都会感到不适,刺痒难耐脱皮痘痘,甚至比冬天还要干燥,起皮,我们称之为春敏。常见症状皮肤脆弱敏风和日丽,湖边游赏,天地无比辽阔择一个风和日丽的早晨,来到旷野里,那里是山,那里是水,那里有着我们向往已久的小河畔花丛里大自然的造化,使我们徜徉,徜徉在我们的心境里,徜徉在我们的人生里!来吧,来到湖边,天地无比辽当年郭晶晶和田亮结合就不会这个结果近日,郭晶晶与霍启刚秘密离婚,当年我就不看好这段婚姻,因为门不当,户不对霍氏家族在香港是一个名门望族,而郭晶晶只不过是一个奥运跳水冠军,他们的结合郭晶晶就融入不了他们这个大家庭里面生活不止有诗和远方,还有家乡和田野走过很多的地方,看过很多的风景,最难忘的,最可爱的,最舒适的,依然是家乡那一草一木,给我留下的是美好的回忆。希望家乡越来越好,日益繁荣富强。家乡是渔米之乡,不止山清水秀,还有群山怀探访北京冬奥会特许商品景泰蓝和田玉冰壶制作连日来,在河北省廊坊市大厂回族自治县,国家级非物质文化遗产花丝镶嵌制作技艺传承人马福良带领他的团队赶制北京冬奥会特许商品景泰蓝和田玉冰壶。北京冬奥会特许商品景泰蓝和田玉冰壶以冬奥会五六十岁的女人拒绝当老阿姨,学学这些时髦精,打扮时髦又年轻虽然很多人到了奔五奔六的年纪,都会戏称自己已经是老阿姨了,但大部分人心中还是会产生年龄焦虑,不愿意承认自己已经老了。但光有心思不行,大家还需要付出行动,像这次为大家分享的时髦精们一采风真的不是度假村!沉浸式体验锦丰员工的目之所及皆是景心中常常想有一天,有座大花园席地而坐,绿茵松软仰望云舒云卷放眼望,云雾漫山绕层峦细观赏,繁花斗艳蝶翻飞有春光环抱,花香沁脾肆意陶醉其中环视四周这一天,已在眼前无需等待假期省去舟车劳李小璐妈妈张伟欣近照曝光,身穿4万外套跳舞,现场环境杂乱不堪李小璐妈妈张伟欣近照曝光,身穿4万外套跳舞,现场环境杂乱不堪说到李小璐,大家都有所耳闻吧,她的事情咱也不多说。就在最近,李小璐的妈妈张伟欣近照被曝光,现身在杂乱不堪的私人聚会之中,
西行追忆西行追忆文王金龙近日,有好友去西部旅行,发来一组照片,其中一幅照片上可以看到西部天上的乌云,飘落到地面上,挡住了汽车不能通行。内地人看到这种景象,都会惊讶地问西北真有这种景象吗?我语言的魔力你可不要小看信念的力量文叶音你听过这样的故事吗?收养了婴儿的妈妈,由于她相信妈妈应当用母乳喂养婴儿,于是她开始分泌乳汁,并有了足够的奶水来自己喂养收养的孩子。这个故事证实了信念所产生的期望会影响我们深层西行杂记西行杂记到西部去领略中华历史的厚重和璀璨,一直是我的梦想。2010年国庆长假终于圆了我的西行梦。9月30日下午下班后,我和几位朋友乘坐旅行社的中巴车来到徐州火车站,2038乘坐11西行乱纪柬埔寨的印度痕迹吴哥窟与柬埔寨的信仰演变吴哥窟,侧面的一个祭坛上,一位柬埔寨的僧人正在和一个德语口音的欧洲人用断断续续的英语聊天,而我,拿着相机坐在旁边,一边假装等待落日,一边听他们聊天。吴哥文化地球发现首个星际天体,来地球已8年,或关联生命起源之谜2017年,一颗神秘的天体突然闯入太阳系。其诡异的外形和不可思议的运行轨迹,都让天文学家感到罕见。这颗小天体的官方名称叫1IOumuamua,简称Oumuamua,也就是中文翻译的简单一套口肌操,帮助孩子提高言语训练效果唇的练习喷也称作双唇后打响,双唇紧闭,将唇的力量集中于后中纵线三分之一的部位,唇齿相依,不裹唇,阻住气流,然后突然连续喷气出声,发出PPP的音。咧将双唇闭紧尽力向前噘起,然后将嘴角61岁不老男神刘德华穿短热裤引负评,网友感觉不是很好看文小星戏说娱乐刘德华昔日牛仔热裤造型曝光,引来负评如潮,也有不少人替刘德华平反,认为这是当时的潮流。香港天王刘德华是演艺圈的美男代表,年过60岁仍活跃幕前,不过,刘德华早年穿热裤的当孤独成为一种常态当自己选择了一种和大部分人不一样的生活方式,自己的人生就注定成了一种孤独的修行。突然有一天,发现自己身边没有可以依靠的人,甚至没有可以说话的人,这个时候,才发现孤独已然成为一种常态建议中老年人50岁后,记得补5种生命元素,腿脚有劲状态佳50岁之后,人们就步入到中老年阶段,身体会有多方面的转变,整体状态大不如前,于是也就需要进行适当的调养,及时补充营养,以保证体内机制正常运转。人体的构成较为复杂,某些营养物质的缺失中年人这样养生,效果比戒烟戒酒好1。找一个适合自己的运动项目,长期坚持。人到中年新陈代谢放缓。身体的各个器官已经使用了几十年了,正是出毛病的时候了。这个时候适当的参加体育锻炼,可以增强你的体质,提高你的免疫力。适体验服新英雄莱西奥技能大剖析体验服版本,不代表最终上线数值及设计!在体验服新英雄莱西奥登场了,很多萌妹都在咨询小宝莱西奥这个英雄怎么玩?到底强不强?今日小宝就来介绍下莱西奥这个新英雄吧。莱西奥优点拉扯能力强,