为了账号安全,请及时绑定邮箱和手机立即绑定

LeetCode thinging or not

标签:
C++

2.

  分配内存空间  

 c malloc  

 c+ new

在我们的项目当中,使用定时任务是避免不了的,我们在部署定时任务时,通常只部署一台机器。当部署多台机器时,同一个任务会执行多次。比如下面这个场景,“短信提醒”,每天定时的给用户下发短信,每个用户只会收到一条短信。如果部署了多台服务,每个服务都会执行这个短信提醒任务,那么每个用户就会收到多条短信,这明显是不可以的;如果只部署一台机器,那么定时任务的高可用是无法满足的,如果这个唯一的服务宕机,那么整个定时任务就挂掉了,这也是不行的。那么今天向大家介绍的这款开源产品就是解决这个问题的,分布式定时任务解决方案——elastic-job。

二、简介

Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。在这里我们着重介绍Elastic-Job-Lite。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供最轻量级的分布式任务的协调服务,外部依赖仅Zookeeper。

  1. 分片概念
    任务的分布式执行,需要将一个任务拆分为多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。
    例如:有一个遍历数据库某张表的作业,现有2台服务器。为了快速的执行作业,那么每台服务器应执行作业的50%。 为满足此需求,可将作业分成2片,每台服务器执行1片。作业遍历数据的逻辑应为:服务器A遍历ID以奇数结尾的数据;服务器B遍历ID以偶数结尾的数据。 如果分成10片,则作业遍历数据的逻辑应为:每个服务得到的分片项应为ID%10,而服务器A被分配到分片项0,1,2,3,4;服务器B被分配到分片项5,6,7,8,9,直接的结果就是服务器A遍历ID以0-4结尾的数据;服务器B遍历ID以5-9结尾的数据。
    Elastic-Job并不直接提供数据处理的功能,框架只会将分片项分配至各个运行中的作业服务器,开发者需要自行处理分片项与真实数据的对应关系。

  2. 作业高可用
    如果在上述的作业中,如果有一个应用挂掉(总共有2


作者:罗那尔少
链接:https://www.imooc.com/article/287038
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消