RocketMQ 控制台This date have't data

快速解决

指定容器启动参数,增加时区及jvm参数-Duser.timezone='Asia/Shanghai",并且挂载本地时区文件,如下

docker run --name mq -d -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.0.249:9876;172.16.8.248:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" -v /etc/localtime:/etc/localtime -p 9999:8080 -t styletang/rocketmq-console-ng 

解决思路

问题

rocketmq console运行一段时间后出现 This date have’t data 这样的异常,异常信息如下:

[2020-02-12 00:17:13.213\] ERROR op=global\_exception\_handler\_print\_error org.apache.rocketmq.console.exception.ServiceException: This date have't data! 

异常意思大概是:该日期内没有数据

环境描述

我是采用docker部署的,参考官方文档https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console

解决

MQ集群是正常的,但出现This date have’t data,怀疑是***容器时间与服务器时间不一致***。登录到容器查看时间

docker exec -it 容器id /bin/bash
# date  # 执行date命令查看时间

果然容器的时间与服务器的时间不一致。
解决方法如下,加入jvm 时区及系统时区文件挂载

docker run --name mq -d -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.0.249:9876;172.16.8.248:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" -v /etc/localtime:/etc/localtime -p 9999:8080 -t styletang/rocketmq-console-ng 

如果本文对你有所帮助,可以关注我的公众号!
运维724

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值