TBSchedule应用实战(八)——常见问题速查手册

  • Q:为什么直接使用官方开源jar包会产生乱码日志?
    • A:官方开源版本默认为GBK编码,如果您的编码为UTF-8请下载resources自行转码后再次package使用。
  • Q:为什么我的控制台无法和应用对应?
    • A:请确保应用中配置Bean:TBScheduleManagerFactory时,其zkConfig中的zkConnectString和rootPath与控制台中Zookeeper连接配置中“Zookeeper地址”和“Zookeeper根目录”保持一致。

  • Q:为什么我的控制台一直显示“错误信息:Zookeeper connecting ......XXXXXXXXXXXXXXXXX”

    • A:首先请确保zookeeper集群可用,如确定zookeeper集群可用,那么上述问题解决方案有三:

      • 1、ScheduleConsole.war中使用的tbs版本过期,更新为最新版后重新打包部署;

      • 2、zookeeper集群服务器防火墙问题,关闭防火墙;

      • 3、目前控制台对新版zookeeper支持落后,先在控制台中配置需要的rootPath,保存并转到管理主页,确认正常后后再启动应用。

  • Q:为什么我的控制台一直显示“错误信息:Zookeeper connecting ......2000ms(4000ms,6000ms)”

    • A:zookeeper不可用

  • Q:为什么我在控制台变更了配置,程序却不起效果?

    • A:zookeeper操作失败,停止策略后,清理任务,开启策略;

    • B:若A不能解决,停止策略,人工删除掉zookeeper中rootPath下以策略命名的节点及其子节点(rmr命令)。

  • Q:为什么使用TBS的应用程序会时不时报出ZooKeeper有关的错误,有时甚至会导致任务不执行?

    • A:tbs为HA设计,请尽量避免使用singleton部署的ZooKeeper;

    • B:ZooKeeper的半数投票机制决定其必须由3、5、7,甚至更多实例来构建Cluster,而3机Cluster是最不可靠的一种,如果Master宕机虽然集群还能够正常提供服务,但此时Master会固定剩余两实例中的一个,无法再次进行选举。然而TBS源码有检查Leader即Master的逻辑存在,故而会引发异常甚至是调度服务的不可用。

  • Q:为什么我明明配置了单线程组最大任务项,但当任务项较多时实际分配的任务项会大于该配置?

    • A:详见resources中ScheduleUtil.java第91-96行代码,官方于2015年注释了任务项分配限制逻辑以保证任务项分配到所有线程组,从而导致该配置失效。

    • 如果您的应用场景确实需要限制任务项,可以使用作者基于官方3.3.3.2优化版本。或者以官方版92行到95行替换98行到102行。

转载于:https://my.oschina.net/wednesday/blog/1595751

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值