[关闭]
@emac 2015-11-26T01:39:46.000000Z 字数 3597 阅读 5736

架构

Cruiser (批处理任务调度系统)

版本:1.1


[术语定义]

  • 任务:如无特殊说明,任务等同于批处理任务
  • 客户端:各类使用BPMS的应用统称,如mobile, web, admin等
  • 系统:指代BPMS
  • 1. 业务需求

    1.1 任务的幂等性

    由于一些系统性(系统,网络,应用)的不可靠性,任何一个任务不可避免的存在失败的可能性。当一个任务执行失败时,最简单有效的应对策略就是重新执行,这就要求任务本身具备幂等性,也即多次执行不会产生副作用。

    1.2 支持的任务类型

    作为第一阶段的目标,系统仅支持业务相关的任务,自定义任务将在后续版本支持。任务在客户端执行,而非系统。

    2. 技术指标

    2.1 可靠性指标

    2.2 性能指标

    3. 架构选型

    3.1 调度框架

    3.2 协同框架

    3.3 参考实现

    4. 系统设计

    4.1 系统架构图

    架构设计

    4.1.1 任务的定义

    一个任务包含如下属性,由category+name唯一确定:

    4.1.2 消息的定义

    一条消息包含如下属性,以JSON格式传递:

    4.1.3 消息的类别

    客户端发送给系统:

    系统发送给客户端:

    4.2 通讯机制

    一套高效,可靠的通讯机制是保证整个系统正常运行的基础。根据连接方式的不同可分为基于长连接和基于短连接的两套方案。

    为简化系统设计,由客户端保证与系统的连通性。

    客户端职责:

    系统职责:

    4.2.1 长连接+消息通讯

    客户端发起长连接请求,系统收到请求后,开启一个新的线程维持该长连接,并通过此连接与该客户端的进行双向通讯。

    可选框架:

    4.2.2 短连接+服务调用+心跳检测

    与长连接方式相比,增加心跳检测机制(客户端发起),帮助系统维护一个活动客户端列表。

    可选框架:

    4.3 调度策略

    一个任务可能对应多个客户端,在此情况下,根据其multi属性,调度策略可细化为:

    4.4 实时性

    5. 演示地址

    6. 后续规划

    Appendix. 参考资料

    添加新批注
    在作者公开此批注前,只有你和作者可见。
    回复批注