快速学习-ElasticJob的FAQ
1. 阅读源码时为什么会出现编译错误?
回答:
ElasticJob 使用 lombok 实现极简代码。关于更多使用和安装细节,请参考 lombok 官网。
2. 是否支持动态添加作业?
回答:
动态添加作业这个概念每个人理解不尽相同。
ElasticJob-Lite 为 jar 包,由开发或运维人员负责启动。启动时自动向注册中心注册作业信息并进行分布式协调,因此并不需要手工在注册中心填写作业信息。 但注册中心与作业部署机无从属关系,注册中心并不能控制将单点的作业分发至其他作业机,也无法将远程服务器未启动的作业启动。 ElasticJob-Lite 并不会包含 ssh 免密管理等功能。
ElasticJob-Cloud 为 mesos 框架,由 mesos 负责作业启动和分发。 但需要将作业打包上传,并调用 ElasticJob-Cloud 提供的 RESTful API 写入注册中心。 打包上传属于部署系统的范畴 ElasticJob-Cloud 并未涉及。
综上所述,ElasticJob 已做了基本动态添加功能,但无法做到真正意义的完全自动化添加。
3. 为什么在代码或配置文件中修改了作业配置,注册中心配置却没有更新?
回答:
ElasticJob-Lite 采用无中心化设计,若每个客户端的配置不一致,不做控制的话,最后一个启动的客户端配置将会成为注册中心的最终配置。
ElasticJob-Lite 提出了 overwrite 概念,可通过 JobConfiguration 或 Spring 命名空间配置。
overwrite=true
即允许客户端配置覆盖注册中心,反之则不允许。
如果注册中心无相关作业的配置,则无论 overwrite 是否配置,客户端配置都将写入注册中心。
4. 作业与注册中心无法通信会如何?
回答:
为了保证作业的在分布式场景下的一致性,一旦作业与注册中心无法通信,运行中的作业会立刻停止执行,但作业的进程不会退出。 这样做的目的是为了防止作业重分片时,将与注册中心失去联系的节点执行的分片分配给另外节点,导致同一分片在两个节点中同时执行。 当作业节点恢复与注册中心联系时,将重新参与分片并恢复执行新的分配到的分片。
5. ElasticJob-Lite 有何使用限制?
回答:
- 作业启动成功后修改作业名称视为新作业,原作业废弃。
- 一旦有服务器波动,或者修改分片项,将会触发重新分片;触发重新分片将会导致运行中的流式处理的作业在执行完本次作业后不再继续执行,等待分片结束后再恢复正常。
- 开启 monitorExecution 才能实现分布式作业幂等性(即不会在多个作业服务器运行同一个分片)的功能,但 monitorExecution 对短时间内执行的作业(如秒级触发)性能影响较大,建议关闭并自行实现幂等性。
6. 怀疑 ElasticJob-Lite 在分布式环境中有问题,但无法重现又不能在线上环境调试,应该怎么做?
回答:
分布式问题非常难于调试和重现,为此 ElasticJob-Lite 提供了 dump 命令。
如果您怀疑某些场景出现问题,可参照作业信息导出将作业运行时信息提交至社区。 ElasticJob 已将 IP 地址等敏感信息过滤,导出的信息可在公网安全传输。
7. ElasticJob-Cloud 有何使用限制?
回答:
- 作业启动成功后修改作业名称视为新作业,原作业废弃。
8. 在 ElasticJob-Cloud 中添加任务后,为什么任务一直在 ready 状态,而不开始执行?
回答:
任务在 mesos 有单独的 agent 可提供所需的资源时才会启动,否则会等待直到有足够的资源。
9. 控制台界面无法正常显示?
回答:
使用控制台时应确保与 ElasticJob 相关版本保持一致,否则会导致不可用。
10. 为什么控制台界面中的作业状态是分片待调整?
回答:
分片待调整表示作业已启动但尚未获得分片时的状态。
- 重置多说配置后的问题,这是不让我从良的节奏啊(附禁用谷歌在线字体的方法)!
- 10个超有趣的Linux命令
- 张戈博客惊现WordPress恶意代码,各位WP博主要注意下了!
- 分享一个多说头像的动态酷炫CSS样式
- 在Linux中发现IP地址冲突的方法
- 教你如何查看Linux的CPU负载
- 想打造一个神经网络,自动给黑白照片上色?这儿有一份超详细教程
- WP_Widget_PostViews has a deprecated constructor 报错解决
- 详解Linux系统的CPU负载均值
- Linux服务器的进程查看命令详解
- 另类SEO分享:利用JS封装iframe躲过搜索引擎的抓取
- Linux :MAC 地址克隆方法
- 解决WordPress修改数据库表前缀后无法登陆的问题
- 解决启用WP-Super-Cache后出现的几个问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- GridSearchCV (scikit learn) 确定超参数
- 10k+点赞的SpringBoot后台管理系统竟然出了详细教程!爱了!
- 数据库备份和恢复
- 在jupyter里面运行conda虚拟环境的R
- 重新夺回对 /etc/resolv.conf 的控制权
- plsql
- 打卡群2刷题总结1008——环形链表
- Oracle数据库的对象
- 打卡群刷题总结1008——加油站
- 打卡群刷题总结1005——跳跃游戏
- 真是活久见,在 Minecraft 的虚拟游戏里竟然还能管理 Kubernetes!
- 打卡群2刷题总结1007——反转链表
- 打卡群2刷题总结1001——两数之和 II - 输入有序数组
- 复杂一点的SQL语句
- PL/SQL Developer连接本地Oracle 11g 64位数据库