业务背景:
XX系统为支撑电商平台的微服务系统,系统为电商平台提供搜索页、四级页、加入购物车等提供查找货源唯一四要素接口服务,通过商品主数据、上下架信息、销售范围、供应链规则、售价、库存等信息计算获取货源,并通过售价、库龄、时效等比较获得最优货源。
系统设计:
为了支撑高并发,高访问的业务特性,系统在设计的时候考虑在每晚凌晨计算所有商品的货源信息(称为全量计算),计算完成后,如果外围系统通过MQ(消息队列)同步来的数据影响到查找货源的计算,则会将影响的商品数据异步的放入动因范围表中,JOB扫描动因范围表,重新计算受影响商品的货源(称为动因计算)。
对外提供的服务接口直接在已有货源的基础上进行过滤,计算。
系统实现(全量计算&动因计算):
由于每天计算量巨大,因此会使用多台机器进行并行计算。需要解决如何调度这些机器有条不紊的计算?
设计调度方案如下:
1. 按照商品编码后三位 000-999分为1000个号段 建立任务调度表
2. 多台机器每个机器都有各自唯一的jobID,争抢号段进行计算,如果抢到该号段,将号段设置为执行状态,锁定该号段后通过该号段查询对应商品进行计算。
Question? --- 多台机器争抢号段,可能发生同时update一条号段记录的情况,对数据库也存在压力,这里为了减少数据库碰撞,设计为构建一个redis的缓存list队列,将所有待处理号段初始化进去,每个机器争抢的时候从list中取出一个号段,然后update,这样减少了碰撞,保证按照顺序执行。
这样设计的好处是资源(机器)和调度任务解耦,并且也保证了高可用性 就算部分机器挂掉,也能保证正常计算。
详细实现:
1. 任务调度表
/*'号段争抢调度表'*/ CREATE TABLE TASK_SCHEDULE ( id INTEGER AUTO_INCREMENT PRIMARY KEY, post_num VARCHAR(10) NOT NULL /*'号段(000-999)'*/ , handle_status INTEGER NOT NULL /*'处理状态 0 待处理 1 在执行 2 已完成 3 异常'*/, jobID VARCHAR(10) /*'抢到该号段的jobID'*/ ) ENGINE=INNODB DEFAULT CHARSET=utf8;
2. 逻辑流程图
3 其他
为了保证全量计算的高效率及高可用性,设计表会有A,B两套表,每天用一套表,在全量计算的时候,清空更新时间最老的表,然后将计算结果插入,如果全部计算成功,进行切表操作,保证了高可用。
相关推荐
分布式系统是计算机科学中的一个重要领域,它涉及到多个独立计算实体通过网络进行协同工作,共同完成一个任务。这个领域的知识广泛而深入,涵盖了多个关键概念和技术。以下是对标题和描述中涉及的一些核心知识点的...
6. **分布式资源调度与管理**:分析分布式系统中的资源分配和调度策略,例如抢占式和非抢占式调度,以及服务质量(QoS)保证。 7. **容错与可靠性**:掌握分布式系统中的容错机制,如冗余备份、故障检测、故障恢复...
第十章 分布式调度:此章可能涵盖任务调度策略,如抢占式调度、优先级调度,以及在分布式环境中的负载均衡和资源分配。 第十一章 分布式共享存储器:这部分可能会介绍分布式共享存储器系统,如何实现共享内存,以及...
对于并行计算环境,可能还会采用基于优先级的调度、抢占式调度等策略。 压缩包中的"shizi.txt"文件很可能包含了具体问题的实例、算法描述或者程序代码,用于实现和测试最佳调度算法。通过分析和运行这些数据,我们...
4. **任务调度策略**:ScheduleX提供了丰富的调度策略,如优先级调度、容量调度、抢占式调度等,可以根据任务的紧急程度和资源需求进行智能调度。 5. **监控与告警**:系统内置了全面的任务监控机制,可以实时展示...
任务调度器会根据不同的调度策略(如轮转调度、优先级调度、抢占式调度等)分配处理器时间,确保系统中所有任务的公平性和响应性。 2. **并行处理**:并行处理是指同时执行多个任务或操作,以提高计算速度和系统...
3. 任务中心:集中管理并行调度任务,实现任务的高效执行。 【监控与管理】 1. 调度器监控:实时监控调度器状态,确保任务执行的稳定性。 2. 调度器管理:进行调度策略的调整和优化。 3. 任务管理:包括Task和Job...
9. 平台应用场景广泛,可用于流式调度、并行调度、分布式调度,以及任务中心管理困难的场景,充分发挥了微服务架构在应对大规模任务处理时的优势。 10. 最后,微服务任务调度平台还注重在实际应用中的可控性,包括...
调度算法在分布式环境中用于决定任务的执行顺序,如全局负载均衡、抢占式调度和分布式调度策略。同时,分布式系统需要具备容错能力,通过备份、复制和故障检测来保证服务的连续性和数据的完整性。 八、安全与隐私 ...
在分布式系统、云计算和大数据处理等领域,工作安排更是关键,因为它们需要优化大量任务的执行顺序和并发性。 在任务调度中,有几种常见的策略: 1. 先来先服务(FCFS):这是最基本的调度算法,按照任务到达的...
1. 非抢占式调度:一旦进程被分配到CPU,就会一直执行直到完成或自愿释放CPU。例如,先来先服务(FCFS,First-Come, First-Served)算法就是非抢占式的,按照进程到达的顺序进行调度。 2. 抢占式调度:允许高优先级...
例如,可以使用抢占式调度,当高优先级的任务(如活动显示任务)需要资源时,可以中断低优先级任务,确保关键任务的执行。另外,也可以通过预测和分析任务的执行时间和资源需求,提前调整任务的执行顺序,以避免资源...
本文将对百度2014校招软件研发工程师笔试题进行详细解读,涵盖动态链接库和静态链接库、轮询任务调度和抢占式任务调度、数据库锁、算法与程序设计、系统设计等多方面的知识点。 一、动态链接库和静态链接库 动态...
为了保证系统的可靠性,往往需要使用特定的资源分配和调度算法,例如抢占式任务切换、无故障平均间隔时间、修复的平均时间等指标,这些都是评估系统可靠性的关键因素。 分布式嵌入式计算机性能评估模型的构建除了...
并行机调度是指在多处理器或分布式系统中,有效地分配计算资源以执行多个并发进程或任务。本资料"pcb.rar"聚焦于并行机调度,包含了并行调度算法和调度程序的设计,旨在优化系统性能和响应时间。 首先,我们要理解...
1. **任务调度算法**:调度器可能采用了不同的调度策略,如轮转调度、优先级调度或抢占式调度,以适应不同场景的需求。 2. **多线程与并发**:为了处理多个并发任务,调度器可能利用了多线程技术,确保任务的并行...
分析各种调度策略,如基于优先级的调度、短作业优先、抢占式调度等。 5. **容错与恢复**:探讨分布式系统中的故障模型,学习如何设计容错机制,如备份、复制、检查点和故障恢复策略。理解 Paxos、Raft 等一致性算法...
另一方面,动态调度策略如抢占式调度和自适应调度,可以根据当前系统状态灵活调整任务执行,以提高资源利用率。这些策略通常结合使用,以平衡各种性能指标。 在高性能云计算平台中,作业调度不仅要考虑任务的执行...
### 分布式数据库系统及其应用知识点详解 #### 第一章:分布式数据库系统概述 - **分布式数据库系统的特点**: - 数据分布在多个物理位置上,这些位置由网络连接。 - 支持本地事务和全局事务。 - 提供数据的...