rokcetmq-console启动失败踩坑

Posted by linhuanjie on 2019-09-25

搭建 rocketmq-console 的时候,控制台一直报错。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[2019-09-23 19:42:13.909]  INFO op=look_clusterInfo {}
[2019-09-23 19:42:14.004] ERROR op=global_exception_handler_print_error
org.apache.rocketmq.console.exception.ServiceException: This date have't data!
at org.apache.rocketmq.console.service.impl.DashboardCollectServiceImpl.getBrokerCache(DashboardCollectServiceImpl.java:140)
at org.apache.rocketmq.console.service.impl.DashboardServiceImpl.queryBrokerData(DashboardServiceImpl.java:41)
at org.apache.rocketmq.console.controller.DashboardController.broker(DashboardController.java:40)
at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)

注意到这一句

1
2
3
[2019-09-23 19:42:14.004] ERROR op=global_exception_handler_print_error
org.apache.rocketmq.console.exception.ServiceException: This date have't data!
at org.apache.rocketmq.console.service.impl.DashboardCollectServiceImpl.getBrokerCache(DashboardCollectServiceImpl.java:140)

然后打开 rocketmq-console源码查看。

DashboardCollectServiceImpl.java

1
2
3
4
5
6
7
8
9
@Override
public Map<String, List<String>> getBrokerCache(String date) {
String dataLocationPath = rmqConfigure.getConsoleCollectData();
File file = new File(dataLocationPath + date + ".json");
if (!file.exists()) {
throw Throwables.propagate(new ServiceException(1, "This date have't data!"));
}
return jsonDataFile2map(file);
}

错误就是这里抛出的了。

1
String dataLocationPath = rmqConfigure.getConsoleCollectData();

这里获取配置文件路径

所以去 resources/application.properties 下查找,

1
rocketmq.config.dataPath=/tmp/rocketmq-console/data

知道了路径,接着去部署rocketmq的服务器查看

1
2
3
4
5
6
7
[root@localhost data]# pwd
/tmp/rocketmq-console/data

[root@localhost data]# ll
total 16
-rw-r--r--. 1 root root 1759 Sep 23 19:58 dashboard2019-09-23.json
-rw-r--r--. 1 root root 11864 Sep 23 19:58 dashboard2019-09-23_topic.json

发现有数据,但是仔细一看,日期对不上。当时的日期是 2019-09-25

查看服务器时间:

1
2
3
4
[root@localhost data]# date
Mon Sep 23 19:59:41 UTC 2019
[root@localhost data]# date -R
Mon, 23 Sep 2019 20:00:58 +0000

果然时间错了,时区并不是东八区

将时区改为东八区,请自行 goolge/百度

如果还是不对,则将时间改为当前时间,参考:https://blog.csdn.net/YonJarLuo/article/details/77864321

重新执行 jar包,

1
java -jar rocketmq-console-ng-1.0.1.jar
1
2
3
4
5
6
7
8
9
10
11
[root@localhost data]# pwd
/tmp/rocketmq-console/data

[root@localhost data]# ll
total 40
-rw-r--r--. 1 root root 2479 Sep 24 04:26 dashboard2019-09-23.json
-rw-r--r--. 1 root root 19208 Sep 24 04:26 dashboard2019-09-23_topic.json
-rw-r--r--. 1 root root 2 Sep 25 00:00 dashboard2019-09-24.json
-rw-r--r--. 1 root root 2 Sep 25 00:00 dashboard2019-09-24_topic.json
-rw-r--r--. 1 root root 127 Sep 25 16:52 dashboard2019-09-25.json
-rw-r--r--. 1 root root 632 Sep 25 16:52 dashboard2019-09-25_topic.json

查看后台,没有了报错,一切恢复了正常~