指定容器启动参数,增长时区及jvm参数-Duser.timezone='Asia/Shanghai",而且挂载本地时区文件,以下git
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 这样的异常,异常信息以下:github
[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
我是采用docker部署的,参考官方文档https://github.com/apache/rocketmq-externals/tree/master/rocketmq-consoleapache
MQ集群是正常的,但出现This date have't data,怀疑是容器时间与服务器时间不一致。登陆到容器查看时间segmentfault
docker exec -it 容器id /bin/bash # date # 执行date命令查看时间
果真容器的时间与服务器的时间不一致。
解决方法以下,加入jvm 时区及系统时区文件挂载bash
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
若是本文对你有所帮助,能够关注个人公众号!服务器