首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
JavaEdge
华为_2012实验室_Java工程师
关注
已关注
取消关注
一起来交流学习吧~
@JavaEdge:
系统设计面试指南之分布式任务调度
1 简介 任务是需要资源(CPU 时间、内存、存储、网络带宽等)在指定时间内完成的一段计算工作。 通过智能地将资源分配给任务以满足任务级和系统级目标的系统称为任务调度程序。 任务调度程序: 及时决定和分配资源给任务的过程称为任务调度。 当我们在 Facebook 发表评论时。我们不会让评论发布者等待直到那条评论被交付给所有关注者。交付被委托给一个异步任务调度程序离线完成。 在分布式系统中,许多任务是在用户的单个请求的背景下运行。考虑Facebook、WhatsApp 或 Instagram 这样的热门系统有数亿用户。这些系统需要一个任务调度程序来处理数十亿个任务。Facebook 使用 Async 根据其用户的数十亿个并行异步请求来调度其所有任务。 Async 是 Facebook 自己的分布式任务调度程序,调度其所有任务。一些任务时间敏感,如应该运行的通知用户某项活动开始直播的任务。如果用户在直播结束后才收到通知就没意义了。某些任务可延迟,如向用户提出好友建议的任务。Async 根据适当的优先级调度任务。 2 需求 可用性:系统应高可用以调度和执行任务 持久性:系统收到的任务应持久化,不应丢失 可扩展性:系统应能每天调度和执行越来越多的任务 有限的等待时间:这是任务在开始执行之前需要等待的时间。我们不能在预期时间之后执行任务。用户不应该无限期地等待。如果用户的等待时间超过一定阈值,他们应该收到通知 3 组件设计 3.1 任务调度程序架构设计 ① Task Submitter(任务提交者) 接受任务。没有单一的任务提交者。相反,我们有一组接收越来越多任务的节点。 ② Database(数据库) 任务提交者接收的所有任务都存储在分布式数据库。使用关系数据库来存储: task IDs user IDs 所需资源 执行上限 客户端尝试总次数 延迟容忍度 ... 使用有向无环图(DAG)存储依赖任务的数据的图数据结构的非关系数据库。 ③ Batching and prioritization(批处理和优先级) 将任务存储在 RDB 后,将任务分批。优先级基于任务的属性,如: 延迟容忍度 或执行时间短的任务等。 将最高 K 优先级的任务推送到分布式队列,K限制可以推送到队列的元素数量。K值取决许多因素,如: 当前可用资源 客户端 或任务优先级 订阅级别 ④ Queue manager(队列管理器) 队列管理器在队列中添加、更新或删除任务。它跟踪我们使用的队列的类型。它还负责保持任务在队列中直到成功执行。如果任务执行失败,该任务将再次出现在队列。队列管理器知道在高峰时段、非高峰时段应该运行什么队列。 ⑤ Res
点赞 4
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
02-16 11:48
蓝禾技术_电商事业部_电商运营管培生(准入职员工)
TP-LINK普联内推,TP-LINK普联内推码
TP-LINK一面 0915 15分钟自我介绍实习中做了哪些工作,实习过程中令你印象最深的一件事简单介绍一个项目,项目用到的技术栈,没有细问熟悉哪些WEB开发框架,Spring与Spring Boot的区别== 与 equals的区别Array与ArrayList的区别String s = "i"与String s = new String("i")的区别 反问部⻔业务与技术栈:嵌入式,软件平台,界面,技术栈说C,C#,C++,GO,Java都有,但用Java的相对 少一些:)。TP-LINK二面 0916 40分钟自我介绍,实习是测开,应聘怎么没去选择...
点赞
评论
收藏
分享
02-18 20:44
重庆邮电大学 后端工程师
是谁除夕夜也在刷题
********上有个“扣友新春联欢活动”,点进去看了一下,大家太有才了
点赞
评论
收藏
分享
02-07 12:06
已编辑
华侨大学 测试开发
92你们赢了
最近看到很多 92 的,甚至是硕士,开始往测开赛道卷,说实话有点看不懂。先把话说清楚,大厂里的测开,绝大多数时间干的还是测试的活,只是写点自动化脚本、维护测试平台、接接流水线,真正像开发一样做系统、做架构、做核心平台的测开少得可怜,基本都集中在核心提效组,而且人很少,外面进去的大概率轮不到你,我想真正干过人都清楚。很多人被洗脑了,以为测开也是开,和后端差不多,只是更简单、更轻松、还高薪。现实情况是,测开和开发的职业路径完全不一样。开发的核心是业务和系统能力,测开的核心是稳定性和覆盖率,前者是往上走,后者天花板非常明显。你可以见到很多开发转测开,但你很少见到干了几年测开还能顺利转回开发的。更现实一点说,92 的高学历如果拿来做测开,大部分时间就是在做重复性很强的杂活,这种工作对个人能力的放大效应非常弱。三年下来,你和一个双非的,甚至本科的测开差距不会太大,但你和同龄的后端、平台开发差距会非常明显。这不是努不努力的问题,是赛道问题。所谓测开简单高薪,本质上是把极少数核心测开的上限,当成了整个岗位的常态来宣传。那些工资高、技术强的测开,本身就是开发水平,只是挂了个测开的名。普通人进去,99% 做的都是项目兜底型工作,而不是你想象中的平台开发。测开不是不能做,但它绝对不是开发的平替,也不是性价比最优解。如果你是真的不想做开发,追求稳定,那测开没问题。但如果你只是觉得测开比后端容易,还能进大厂,那我劝你冷静一点,这只是在用短期安全感换长期天花板。有92的学历,如果你连测开这些重复性工作都能心甘情愿接受,那你把时间精力用在真正的开发、系统、业务深度上,回报大概率比卷测开要高得多。想清楚再下场,别被岗位名和话术带偏了,就算去个前端客户端也是随便占坑的,测开是一个坑位很少赛道,反而大面积学历下放,不用想也能知道会是什么结果,我想各位在JAVA那里已经看到了
小浪_Coding:
工作只是谋生的手段 而不是相互比较和歧视
点赞
评论
收藏
分享
02-16 11:30
迅雷_X-PEP 产品星(准入职员工)
迅雷内推,迅雷内推码
一面面试官来自迅雷浏览器 1. 自我介绍 2. 分享 C 端相关的经历 3. 对 2 提到的消费者售后需求,竞品是怎么做的? 4. 暑期实习工作 5. 对 4,如何理解首页资源既是用户编辑的地方,又是运营可以操作的地方 6. 使用情况的量级 7. 基础体验最应该做的事情是什么? 现状:功能创新少,策略渗透多。 因此,最应该做的事是策略的精细化运营,给每个人不同的产品体验 产品责任:定义运营位的使用规则、体验边界、运营能力,做好运营平台的建设,让运营跟正常开发解耦。 8. 迅雷浏览器体验中的亮点/槽点 9. 其他有意思的产品分享下 豆包 PC 端 - 插件做场景渗透,把我黏住了,选中文字浮起工具...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
669
2
...
HTTP 和 HTTPS 区别
524
3
...
27届实习近一年的年度经历和总结
496
4
...
关于租房
411
5
...
agent实习都干什么?prompt设计
281
6
...
美团推荐算法一面
273
7
...
追一科技 C++ 一面
231
8
...
27前端双非找实习
223
9
...
Redis 的 Zset底层是怎么实现的?
215
10
...
这个简历可以去找暑期实习了吗
205
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
14404次浏览
168人参与
#
你最讨厌面试被问什么
#
1597次浏览
27人参与
#
牛客AI体验站
#
17945次浏览
305人参与
#
有转正机会的小厂实习值得去吗?
#
905次浏览
21人参与
#
牛友们,签完三方你在忙什么?
#
137469次浏览
994人参与
#
担心入职之后被发现很菜怎么办
#
282613次浏览
1186人参与
#
如何缓解入职前的焦虑
#
259066次浏览
1453人参与
#
校招第一份工作你干了多久?
#
139479次浏览
609人参与
#
去年的flag与今年的小目标
#
34417次浏览
337人参与
#
牛客租房专区
#
152055次浏览
1502人参与
#
秋招开始捡漏了吗
#
229534次浏览
1044人参与
#
九月了,是考研还是就业?
#
89517次浏览
557人参与
#
秋招投递攻略
#
268877次浏览
2554人参与
#
这份实习,有没有动摇过你的职业方向?
#
2396次浏览
40人参与
#
搜狐工作体验
#
4128次浏览
30人参与
#
机械人求职现状
#
33685次浏览
297人参与
#
我是XXX,请攻击我最薄弱的地方
#
61838次浏览
410人参与
#
用友工作体验
#
18102次浏览
151人参与
#
你的工资什么时候发?
#
57568次浏览
355人参与
#
你的实习什么时候入职
#
348198次浏览
2292人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务