回答:
ElasticJob 使用 lombok 实现极简代码。关于更多使用和安装细节,请参考 lombok 官网。
回答:
动态添加作业这个概念每个人理解不尽相同。
ElasticJob-Lite 为 jar 包,由开发或运维人员负责启动。启动时自动向注册中心注册作业信息并进行分布式协调,因此并不需要手工在注册中心填写作业信息。 但注册中心与作业部署机无从属关系,注册中心并不能控制将单点的作业分发至其他作业机,也无法将远程服务器未启动的作业启动。 ElasticJob-Lite 并不会包含 ssh 免密管理等功能。
ElasticJob-Cloud 为 mesos 框架,由 mesos 负责作业启动和分发。 但需要将作业打包上传,并调用 ElasticJob-Cloud 提供的 RESTful API 写入注册中心。 打包上传属于部署系统的范畴 ElasticJob-Cloud 并未涉及。
综上所述,ElasticJob 已做了基本动态添加功能,但无法做到真正意义的完全自动化添加。
回答:
ElasticJob-Lite 采用无中心化设计,若每个客户端的配置不一致,不做控制的话,最后一个启动的客户端配置将会成为注册中心的最终配置。
ElasticJob-Lite 提出了 overwrite 概念,可通过 JobConfiguration 或 Spring 命名空间配置。
overwrite=true
即允许客户端配置覆盖注册中心,反之则不允许。
如果注册中心无相关作业的配置,则无论 overwrite 是否配置,客户端配置都将写入注册中心。
回答:
为了保证作业的在分布式场景下的一致性,一旦作业与注册中心无法通信,运行中的作业会立刻停止执行,但作业的进程不会退出。 这样做的目的是为了防止作业重分片时,将与注册中心失去联系的节点执行的分片分配给另外节点,导致同一分片在两个节点中同时执行。 当作业节点恢复与注册中心联系时,将重新参与分片并恢复执行新的分配到的分片。
回答:
回答:
分布式问题非常难于调试和重现,为此 ElasticJob-Lite 提供了 dump 命令。
如果您怀疑某些场景出现问题,可参照作业信息导出将作业运行时信息提交至社区。 ElasticJob 已将 IP 地址等敏感信息过滤,导出的信息可在公网安全传输。
回答:
回答:
任务在 mesos 有单独的 agent 可提供所需的资源时才会启动,否则会等待直到有足够的资源。
回答:
使用控制台时应确保与 ElasticJob 相关版本保持一致,否则会导致不可用。
回答:
分片待调整表示作业已启动但尚未获得分片时的状态。