RocketMQ Console 的安装及运行

RocketMQ 官方文档中并未提到可视化管理控制台(Console)的任何信息,因为官方发布版本中并未集成 Console 相关功能,不过在 GitHub 中可以找到一个 RocketMQ 的扩展项目 rocketmq-externals,其中包括 RocketMQ-Console,这个 RocketMQ 扩展项目由社区贡献和维护。

RocketMQ-Console 使用 Spring Boot 1.x 开发,本文介绍如何安装和运行 RocketMQ-Console。

Windows

1 下载 rocketmq-externals,可以直接在 GitHub 上下载 ZIP 包,也可以通过 Git clone,本文使用下载的 ZIP 包,实际上使用 Git 也非常方便,还可以借助 IDE(如 Intellij IDEA,Eclipse)直接打包运行。

2 修改配置文件 rocketmq-externals-master/rocketmq-console/src/main/resources/application.properties,添加 NameServer 地址

RocketMQ Console 的安装及运行_第1张图片

注意:如果不修改此处配置文件,则启动时默认读取环境变量 NAMESRV_ADDR,如何设置此环境变量在 RocketMQ 安装部署及运行 中有说明。

2 解压下载成功的 rocketmq-externals-master.zip,打开命令提示符窗口(cmd)进入 rocketmq-externals-master\rocketmq-console 目录,执行 mvn spring-boot:run 命令,注意执行命令前本地需要安装 Maven 并设置环境变量 M2_HOME 指向 Maven 安装根目录,并将 %M2_HOME%\bin 添加到环境变量 Path 中。启动日志:

D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console>mvn spring-boot:run
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< org.apache:rocketmq-console-ng >-------------------
[INFO] Building rocketmq-console-ng 1.0.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> spring-boot-maven-plugin:1.4.3.RELEASE:run (default-cli) > test-compile @ rocketmq-console-ng >>>
[INFO]
[INFO] --- maven-checkstyle-plugin:2.17:check (validate) @ rocketmq-console-ng ---
[INFO] Starting audit...
Audit done.
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (default-prepare-agent) @ rocketmq-console-ng ---
[INFO] argLine set to -javaagent:D:\\...\\DEV\\Maven\\repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\...\\DEV\\RocketMQ\\rocketmq-externals-master\\rocketmq-console\\target\\jacoco.exec
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rocketmq-console-ng ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 960 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ rocketmq-console-ng ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ rocketmq-console-ng ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ rocketmq-console-ng ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 15 source files to D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target\test-classes
[INFO]
[INFO] <<< spring-boot-maven-plugin:1.4.3.RELEASE:run (default-cli) < test-compile @ rocketmq-console-ng <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:1.4.3.RELEASE:run (default-cli) @ rocketmq-console-ng ---
22:53:36,109 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
22:53:36,109 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
22:53:36,109 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/target/classes/logback.xml]
22:53:36,203 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
22:53:36,218 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
22:53:36,248 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
22:53:36,254 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
22:53:36,279 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
22:53:36,281 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
22:53:36,297 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1648630236 - No compression will be used
22:53:36,299 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1648630236 - Will use the pattern C:/Users/Ji/logs/consolelogs/rocketmq-console-%d{yyyy-MM-dd}.%i.log for the active file
22:53:36,302 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@29926b1 - The date pattern is 'yyyy-MM-dd' from file name pattern 'C:/Users/Ji/logs/consolelogs/rocketmq-console-%d{yyyy-MM-dd}.%i.log'.
22:53:36,302 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@29926b1 - Roll-over at midnight.
22:53:36,304 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@29926b1 - Setting initial period to Wed Jul 04 22:53:18 CST 2018
22:53:36,305 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@29926b1 - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
22:53:36,308 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
22:53:36,310 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: C:\Users\Ji/logs/consolelogs/rocketmq-console.log
22:53:36,310 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [C:\Users\Ji/logs/consolelogs/rocketmq-console.log]
22:53:36,312 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
22:53:36,312 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
22:53:36,313 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
22:53:36,313 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
22:53:36,314 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@686603f4 - Registering current configuration as safe fallback point


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.3.RELEASE)

[2018-07-04 22:53:37.235]  INFO Starting App on LAPTOP-C375ASPB with PID 4964 (D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target\classes started by Ji in D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console)
[2018-07-04 22:53:37.238]  INFO No active profile set, falling back to default profiles: default
[2018-07-04 22:53:37.292]  INFO Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5aa0390: startup date [Wed Jul 04 22:53:37 CST 2018]; root of context hierarchy
[2018-07-04 22:53:37.536]  INFO HV000001: Hibernate Validator 5.2.4.Final
[2018-07-04 22:53:40.164]  INFO Tomcat initialized with port(s): 8080 (http)
[2018-07-04 22:53:40.191]  INFO Starting service Tomcat
[2018-07-04 22:53:40.193]  INFO Starting Servlet Engine: Apache Tomcat/8.5.6
[2018-07-04 22:53:40.314]  INFO Initializing Spring embedded WebApplicationContext
[2018-07-04 22:53:40.315]  INFO Root WebApplicationContext: initialization completed in 3023 ms
[2018-07-04 22:53:40.862]  INFO Mapping servlet: 'dispatcherServlet' to [/]
[2018-07-04 22:53:40.868]  INFO Mapping filter: 'metricsFilter' to: [/*]
[2018-07-04 22:53:40.869]  INFO Mapping filter: 'characterEncodingFilter' to: [/*]
[2018-07-04 22:53:40.872]  INFO Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
[2018-07-04 22:53:40.874]  INFO Mapping filter: 'httpPutFormContentFilter' to: [/*]
[2018-07-04 22:53:40.876]  INFO Mapping filter: 'requestContextFilter' to: [/*]
[2018-07-04 22:53:40.876]  INFO Mapping filter: 'webRequestLoggingFilter' to: [/*]
[2018-07-04 22:53:40.881]  INFO Mapping filter: 'applicationContextIdFilter' to: [/*]
[2018-07-04 22:53:40.959]  INFO setNameSrvAddrByProperty nameSrvAddr=localhost:9876
[2018-07-04 22:53:42.214]  INFO Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5aa0390: startup date [Wed Jul 04 22:53:37 CST 2018]; root of context hierarchy
[2018-07-04 22:53:42.227]  INFO Detected ResponseBodyAdvice bean in globalRestfulResponseBodyAdvice
[2018-07-04 22:53:42.352]  INFO Mapped "{[/cluster/list.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ClusterController.list()
[2018-07-04 22:53:42.354]  INFO Mapped "{[/cluster/brokerConfig.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ClusterController.brokerConfig(java.lang.String)
[2018-07-04 22:53:42.359]  INFO Mapped "{[/consumer/groupList.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.list()
[2018-07-04 22:53:42.359]  INFO Mapped "{[/consumer/resetOffset.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.resetOffset(org.apache.rocketmq.console.model.request.ResetOffsetRequest)
[2018-07-04 22:53:42.361]  INFO Mapped "{[/consumer/group.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.groupQuery(java.lang.String)
[2018-07-04 22:53:42.363]  INFO Mapped "{[/consumer/deleteSubGroup.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.deleteSubGroup(org.apache.rocketmq.console.model.request.DeleteSubGroupRequest)
[2018-07-04 22:53:42.367]  INFO Mapped "{[/consumer/queryTopicByConsumer.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.queryConsumerByTopic(java.lang.String)
[2018-07-04 22:53:42.369]  INFO Mapped "{[/consumer/consumerConnection.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.consumerConnection(java.lang.String)
[2018-07-04 22:53:42.373]  INFO Mapped "{[/consumer/consumerRunningInfo.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.getConsumerRunningInfo(java.lang.String,java.lang.String,boolean)
[2018-07-04 22:53:42.374]  INFO Mapped "{[/consumer/examineSubscriptionGroupConfig.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.examineSubscriptionGroupConfig(java.lang.String)
[2018-07-04 22:53:42.378]  INFO Mapped "{[/consumer/createOrUpdate.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.consumerCreateOrUpdateRequest(org.apache.rocketmq.console.model.request.ConsumerConfigInfo)
[2018-07-04 22:53:42.380]  INFO Mapped "{[/consumer/fetchBrokerNameList.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.fetchBrokerNameList(java.lang.String)
[2018-07-04 22:53:42.383]  INFO Mapped "{[/dashboard/topic.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.DashboardController.topic(java.lang.String,java.lang.String)
[2018-07-04 22:53:42.386]  INFO Mapped "{[/dashboard/broker.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.DashboardController.broker(java.lang.String)
[2018-07-04 22:53:42.389]  INFO Mapped "{[/dashboard/topicCurrent],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.DashboardController.topicCurrent()
[2018-07-04 22:53:42.395]  INFO Mapped "{[/message/viewMessage.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.viewMessage(java.lang.String,java.lang.String)
[2018-07-04 22:53:42.396]  INFO Mapped "{[/message/consumeMessageDirectly.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.consumeMessageDirectly(java.lang.String,java.lang.String,java.lang.String,java.lang.String)
[2018-07-04 22:53:42.401]  INFO Mapped "{[/message/queryMessageByTopic.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.queryMessageByTopic(java.lang.String,long,long)
[2018-07-04 22:53:42.402]  INFO Mapped "{[/message/queryMessageByTopicAndKey.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.queryMessageByTopicAndKey(java.lang.String,java.lang.String)
[2018-07-04 22:53:42.405]  INFO Mapped "{[/monitor/deleteConsumerMonitor.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.deleteConsumerMonitor(java.lang.String)
[2018-07-04 22:53:42.407]  INFO Mapped "{[/monitor/consumerMonitorConfig.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.consumerMonitorConfig()
[2018-07-04 22:53:42.410]  INFO Mapped "{[/monitor/consumerMonitorConfigByGroupName.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.consumerMonitorConfigByGroupName(java.lang.String)
[2018-07-04 22:53:42.411]  INFO Mapped "{[/monitor/createOrUpdateConsumerMonitor.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.createOrUpdateConsumerMonitor(java.lang.String,int,int)
[2018-07-04 22:53:42.413]  INFO Mapped "{[/rocketmq/nsaddr],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.NamesvrController.nsaddr()
[2018-07-04 22:53:42.415]  INFO Mapped "{[/ops/homePage.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.homePage()
[2018-07-04 22:53:42.417]  INFO Mapped "{[/ops/rocketMqStatus.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.clusterStatus()
[2018-07-04 22:53:42.421]  INFO Mapped "{[/ops/updateIsVIPChannel.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.updateIsVIPChannel(java.lang.String)
[2018-07-04 22:53:42.422]  INFO Mapped "{[/ops/updateNameSvrAddr.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.updateNameSvrAddr(java.lang.String)
[2018-07-04 22:53:42.424]  INFO Mapped "{[/producer/producerConnection.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ProducerController.producerConnection(java.lang.String,java.lang.String)
[2018-07-04 22:53:42.425]  INFO Mapped "{[/test/runTask.do],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TestController.list() throws org.apache.rocketmq.client.exception.MQClientException,org.apache.rocketmq.remoting.exception.RemotingException,java.lang.InterruptedException
[2018-07-04 22:53:42.435]  INFO Mapped "{[/topic/deleteTopic.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.delete(java.lang.String,java.lang.String)
[2018-07-04 22:53:42.435]  INFO Mapped "{[/topic/list.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.list() throws org.apache.rocketmq.client.exception.MQClientException,org.apache.rocketmq.remoting.exception.RemotingException,java.lang.InterruptedException
[2018-07-04 22:53:42.436]  INFO Mapped "{[/topic/stats.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.stats(java.lang.String)
[2018-07-04 22:53:42.440]  INFO Mapped "{[/topic/sendTopicMessage.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.sendTopicMessage(org.apache.rocketmq.console.model.request.SendTopicMessageRequest) throws org.apache.rocketmq.remoting.exception.RemotingException,org.apache.rocketmq.client.exception.MQClientException,java.lang.InterruptedException
[2018-07-04 22:53:42.446]  INFO Mapped "{[/topic/route.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.route(java.lang.String)
[2018-07-04 22:53:42.446]  INFO Mapped "{[/topic/queryConsumerByTopic.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.queryConsumerByTopic(java.lang.String)
[2018-07-04 22:53:42.447]  INFO Mapped "{[/topic/queryTopicConsumerInfo.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.queryTopicConsumerInfo(java.lang.String)
[2018-07-04 22:53:42.447]  INFO Mapped "{[/topic/deleteTopicByBroker.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.deleteTopicByBroker(java.lang.String,java.lang.String)
[2018-07-04 22:53:42.450]  INFO Mapped "{[/topic/examineTopicConfig.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.examineTopicConfig(java.lang.String,java.lang.String) throws org.apache.rocketmq.remoting.exception.RemotingException,org.apache.rocketmq.client.exception.MQClientException,java.lang.InterruptedException
[2018-07-04 22:53:42.456]  INFO Mapped "{[/topic/createOrUpdate.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.topicCreateOrUpdateRequest(org.apache.rocketmq.console.model.request.TopicConfigInfo)
[2018-07-04 22:53:42.460]  INFO Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
[2018-07-04 22:53:42.464]  INFO Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
[2018-07-04 22:53:42.568]  INFO Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2018-07-04 22:53:42.569]  INFO Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2018-07-04 22:53:42.599]  INFO Detected @ExceptionHandler methods in globalExceptionHandler
[2018-07-04 22:53:42.600]  INFO Detected ResponseBodyAdvice implementation in globalRestfulResponseBodyAdvice
[2018-07-04 22:53:42.658]  INFO Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2018-07-04 22:53:42.707]  INFO Adding welcome page: class path resource [static/index.html]
[2018-07-04 22:53:43.206]  INFO Mapped "{[/beans || /beans.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.208]  INFO Mapped "{[/info || /info.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.209]  INFO Mapped "{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException
[2018-07-04 22:53:43.211]  INFO Mapped "{[/configprops || /configprops.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.211]  INFO Mapped "{[/health || /health.json],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(java.security.Principal)
[2018-07-04 22:53:43.212]  INFO Mapped "{[/dump || /dump.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.214]  INFO Mapped "{[/env/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
[2018-07-04 22:53:43.215]  INFO Mapped "{[/env || /env.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.219]  INFO Mapped "{[/trace || /trace.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.224]  INFO Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
[2018-07-04 22:53:43.226]  INFO Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.229]  INFO Mapped "{[/mappings || /mappings.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.233]  INFO Mapped "{[/autoconfig || /autoconfig.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:53:43.444]  INFO Registering beans for JMX exposure on startup
[2018-07-04 22:53:43.451]  INFO Registering beans for JMX exposure on startup
[2018-07-04 22:53:43.457]  INFO Starting beans in phase 0
[2018-07-04 22:53:43.467]  INFO Located managed bean 'requestMappingEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=requestMappingEndpoint]
[2018-07-04 22:53:43.498]  INFO Located managed bean 'environmentEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=environmentEndpoint]
[2018-07-04 22:53:43.504]  INFO Located managed bean 'healthEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=healthEndpoint]
[2018-07-04 22:53:43.509]  INFO Located managed bean 'beansEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=beansEndpoint]
[2018-07-04 22:53:43.515]  INFO Located managed bean 'infoEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=infoEndpoint]
[2018-07-04 22:53:43.521]  INFO Located managed bean 'metricsEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=metricsEndpoint]
[2018-07-04 22:53:43.526]  INFO Located managed bean 'traceEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=traceEndpoint]
[2018-07-04 22:53:43.530]  INFO Located managed bean 'dumpEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=dumpEndpoint]
[2018-07-04 22:53:43.542]  INFO Located managed bean 'autoConfigurationReportEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=autoConfigurationReportEndpoint]
[2018-07-04 22:53:43.546]  INFO Located managed bean 'configurationPropertiesReportEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=configurationPropertiesReportEndpoint]
[2018-07-04 22:53:43.560]  INFO No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
[2018-07-04 22:53:43.576]  INFO Initializing ProtocolHandler ["http-nio-8080"]
[2018-07-04 22:53:43.590]  INFO Starting ProtocolHandler [http-nio-8080]
[2018-07-04 22:53:43.889]  INFO Using a shared selector for servlet write/read
[2018-07-04 22:53:43.908]  INFO Tomcat started on port(s): 8080 (http)
[2018-07-04 22:53:43.917]  INFO Started App in 7.309 seconds (JVM running for 15.867)

3 打开浏览器,输入 localhost:8080,可以看到如下界面

RocketMQ Console 的安装及运行_第2张图片

注意:第 2 步中执行 mvn spring-boot:run 命令可以替换成以下两步:

(1) 使用 Maven 打包 RocketMQ-Console
打开命令提示符窗口(cmd)进入 rocketmq-externals-master\rocketmq-console 目录,执行 mvn clean package -Dmaven.test.skip=true 命令

D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console>mvn clean package -Dmaven.test.skip=true
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< org.apache:rocketmq-console-ng >-------------------
[INFO] Building rocketmq-console-ng 1.0.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ rocketmq-console-ng ---
[INFO] Deleting D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target
[INFO]
[INFO] --- maven-checkstyle-plugin:2.17:check (validate) @ rocketmq-console-ng ---
[INFO] Starting audit...
Audit done.
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (default-prepare-agent) @ rocketmq-console-ng ---
[INFO] argLine set to -javaagent:D:\\...\\DEV\\Maven\\repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\...\\DEV\\RocketMQ\\rocketmq-externals-master\\rocketmq-console\\target\\jacoco.exec
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rocketmq-console-ng ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 960 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ rocketmq-console-ng ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 59 source files to D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target\classes
[WARNING] /D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/src/main/java/org/apache/rocketmq/console/util/JsonUtil.java: D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\src\main\java\org\apache\rocketmq\console\util\JsonUtil.java使用或覆盖了已过时的 API。
[WARNING] /D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/src/main/java/org/apache/rocketmq/console/util/JsonUtil.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
[WARNING] /D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/src/main/java/org/apache/rocketmq/console/support/GlobalRestfulResponseBodyAdvice.java: D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\src\main\java\org\apache\rocketmq\console\support\GlobalRestfulResponseBodyAdvice.java使用了未经检查或不安全的 操作。
[WARNING] /D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/src/main/java/org/apache/rocketmq/console/support/GlobalRestfulResponseBodyAdvice.java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ rocketmq-console-ng ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ rocketmq-console-ng ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ rocketmq-console-ng ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ rocketmq-console-ng ---
[INFO] Building jar: D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target\rocketmq-console-ng-1.0.0.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.4.3.RELEASE:repackage (default) @ rocketmq-console-ng ---
[INFO]
[INFO] >>> maven-source-plugin:3.0.1:jar (attach-sources) > generate-sources @ rocketmq-console-ng >>>
[INFO]
[INFO] --- maven-checkstyle-plugin:2.17:check (validate) @ rocketmq-console-ng ---
[INFO] Starting audit...
Audit done.
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (default-prepare-agent) @ rocketmq-console-ng ---
[INFO] argLine set to -javaagent:D:\\...\\DEV\\Maven\\repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\...\\DEV\\RocketMQ\\rocketmq-externals-master\\rocketmq-console\\target\\jacoco.exec
[INFO]
[INFO] <<< maven-source-plugin:3.0.1:jar (attach-sources) < generate-sources @ rocketmq-console-ng <<<
[INFO]
[INFO]
[INFO] --- maven-source-plugin:3.0.1:jar (attach-sources) @ rocketmq-console-ng ---
[INFO] Building jar: D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target\rocketmq-console-ng-1.0.0-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.856 s
[INFO] Finished at: 2018-07-04T22:56:39+08:00
[INFO] ------------------------------------------------------------------------

(2) 运行 target 目录中刚生成的 jar 包
执行 java -jar target/rocketmq-console-ng-1.0.0.jar 命令

D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console>java -jar target/rocketmq-console-ng-1.0.0.jar
22:57:11,532 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
22:57:11,532 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
22:57:11,533 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/target/rocketmq-console-ng-1.0.0.jar!/BOOT-INF/classes!/logback.xml]
22:57:11,569 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@3d494fbf - URL [jar:file:/D:/.../DEV/RocketMQ/rocketmq-externals-master/rocketmq-console/target/rocketmq-console-ng-1.0.0.jar!/BOOT-INF/classes!/logback.xml] is not of type file
22:57:11,648 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
22:57:11,672 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
22:57:11,690 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
22:57:11,702 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
22:57:11,786 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
22:57:11,794 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
22:57:11,822 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@500977346 - No compression will be used
22:57:11,825 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@500977346 - Will use the pattern C:/Users/Ji/logs/consolelogs/rocketmq-console-%d{yyyy-MM-dd}.%i.log for the active file
22:57:11,830 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@133314b - The date pattern is 'yyyy-MM-dd' from file name pattern 'C:/Users/Ji/logs/consolelogs/rocketmq-console-%d{yyyy-MM-dd}.%i.log'.
22:57:11,830 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@133314b - Roll-over at midnight.
22:57:11,835 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@133314b - Setting initial period to Wed Jul 04 22:56:06 CST 2018
22:57:11,836 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@133314b - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
22:57:11,840 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
22:57:11,843 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: C:\Users\Ji/logs/consolelogs/rocketmq-console.log
22:57:11,843 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [C:\Users\Ji/logs/consolelogs/rocketmq-console.log]
22:57:11,846 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
22:57:11,846 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
22:57:11,847 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
22:57:11,847 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
22:57:11,848 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@b1bc7ed - Registering current configuration as safe fallback point


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.3.RELEASE)

[2018-07-04 22:57:12.925]  INFO Starting App v1.0.0 on LAPTOP-C375ASPB with PID 20372 (D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console\target\rocketmq-console-ng-1.0.0.jar started by Ji in D:\...\DEV\RocketMQ\rocketmq-externals-master\rocketmq-console)
[2018-07-04 22:57:12.933]  INFO No active profile set, falling back to default profiles: default
[2018-07-04 22:57:13.058]  INFO Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@63c12fb0: startup date [Wed Jul 04 22:57:13 CST 2018]; root of context hierarchy
[2018-07-04 22:57:13.151]  INFO HV000001: Hibernate Validator 5.2.4.Final
[2018-07-04 22:57:17.177]  INFO Tomcat initialized with port(s): 8080 (http)
[2018-07-04 22:57:17.207]  INFO Starting service Tomcat
[2018-07-04 22:57:17.210]  INFO Starting Servlet Engine: Apache Tomcat/8.5.6
[2018-07-04 22:57:17.420]  INFO Initializing Spring embedded WebApplicationContext
[2018-07-04 22:57:17.421]  INFO Root WebApplicationContext: initialization completed in 4363 ms
[2018-07-04 22:57:18.252]  INFO Mapping servlet: 'dispatcherServlet' to [/]
[2018-07-04 22:57:18.266]  INFO Mapping filter: 'metricsFilter' to: [/*]
[2018-07-04 22:57:18.268]  INFO Mapping filter: 'characterEncodingFilter' to: [/*]
[2018-07-04 22:57:18.269]  INFO Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
[2018-07-04 22:57:18.270]  INFO Mapping filter: 'httpPutFormContentFilter' to: [/*]
[2018-07-04 22:57:18.270]  INFO Mapping filter: 'requestContextFilter' to: [/*]
[2018-07-04 22:57:18.271]  INFO Mapping filter: 'webRequestLoggingFilter' to: [/*]
[2018-07-04 22:57:18.273]  INFO Mapping filter: 'applicationContextIdFilter' to: [/*]
[2018-07-04 22:57:18.396]  INFO setNameSrvAddrByProperty nameSrvAddr=localhost:9876
[2018-07-04 22:57:20.244]  INFO Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@63c12fb0: startup date [Wed Jul 04 22:57:13 CST 2018]; root of context hierarchy
[2018-07-04 22:57:20.261]  INFO Detected ResponseBodyAdvice bean in globalRestfulResponseBodyAdvice
[2018-07-04 22:57:20.510]  INFO Mapped "{[/cluster/list.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ClusterController.list()
[2018-07-04 22:57:20.514]  INFO Mapped "{[/cluster/brokerConfig.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ClusterController.brokerConfig(java.lang.String)
[2018-07-04 22:57:20.523]  INFO Mapped "{[/consumer/groupList.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.list()
[2018-07-04 22:57:20.525]  INFO Mapped "{[/consumer/fetchBrokerNameList.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.fetchBrokerNameList(java.lang.String)
[2018-07-04 22:57:20.529]  INFO Mapped "{[/consumer/examineSubscriptionGroupConfig.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.examineSubscriptionGroupConfig(java.lang.String)
[2018-07-04 22:57:20.530]  INFO Mapped "{[/consumer/createOrUpdate.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.consumerCreateOrUpdateRequest(org.apache.rocketmq.console.model.request.ConsumerConfigInfo)
[2018-07-04 22:57:20.531]  INFO Mapped "{[/consumer/queryTopicByConsumer.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.queryConsumerByTopic(java.lang.String)
[2018-07-04 22:57:20.540]  INFO Mapped "{[/consumer/consumerRunningInfo.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.getConsumerRunningInfo(java.lang.String,java.lang.String,boolean)
[2018-07-04 22:57:20.544]  INFO Mapped "{[/consumer/consumerConnection.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.consumerConnection(java.lang.String)
[2018-07-04 22:57:20.545]  INFO Mapped "{[/consumer/resetOffset.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.resetOffset(org.apache.rocketmq.console.model.request.ResetOffsetRequest)
[2018-07-04 22:57:20.549]  INFO Mapped "{[/consumer/deleteSubGroup.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.deleteSubGroup(org.apache.rocketmq.console.model.request.DeleteSubGroupRequest)
[2018-07-04 22:57:20.553]  INFO Mapped "{[/consumer/group.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ConsumerController.groupQuery(java.lang.String)
[2018-07-04 22:57:20.560]  INFO Mapped "{[/dashboard/topicCurrent],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.DashboardController.topicCurrent()
[2018-07-04 22:57:20.562]  INFO Mapped "{[/dashboard/broker.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.DashboardController.broker(java.lang.String)
[2018-07-04 22:57:20.565]  INFO Mapped "{[/dashboard/topic.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.DashboardController.topic(java.lang.String,java.lang.String)
[2018-07-04 22:57:20.576]  INFO Mapped "{[/message/queryMessageByTopicAndKey.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.queryMessageByTopicAndKey(java.lang.String,java.lang.String)
[2018-07-04 22:57:20.578]  INFO Mapped "{[/message/queryMessageByTopic.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.queryMessageByTopic(java.lang.String,long,long)
[2018-07-04 22:57:20.580]  INFO Mapped "{[/message/consumeMessageDirectly.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.consumeMessageDirectly(java.lang.String,java.lang.String,java.lang.String,java.lang.String)
[2018-07-04 22:57:20.581]  INFO Mapped "{[/message/viewMessage.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MessageController.viewMessage(java.lang.String,java.lang.String)
[2018-07-04 22:57:20.587]  INFO Mapped "{[/monitor/deleteConsumerMonitor.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.deleteConsumerMonitor(java.lang.String)
[2018-07-04 22:57:20.588]  INFO Mapped "{[/monitor/createOrUpdateConsumerMonitor.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.createOrUpdateConsumerMonitor(java.lang.String,int,int)
[2018-07-04 22:57:20.589]  INFO Mapped "{[/monitor/consumerMonitorConfigByGroupName.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.consumerMonitorConfigByGroupName(java.lang.String)
[2018-07-04 22:57:20.591]  INFO Mapped "{[/monitor/consumerMonitorConfig.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.MonitorController.consumerMonitorConfig()
[2018-07-04 22:57:20.594]  INFO Mapped "{[/rocketmq/nsaddr],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.NamesvrController.nsaddr()
[2018-07-04 22:57:20.604]  INFO Mapped "{[/ops/updateNameSvrAddr.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.updateNameSvrAddr(java.lang.String)
[2018-07-04 22:57:20.605]  INFO Mapped "{[/ops/updateIsVIPChannel.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.updateIsVIPChannel(java.lang.String)
[2018-07-04 22:57:20.606]  INFO Mapped "{[/ops/rocketMqStatus.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.clusterStatus()
[2018-07-04 22:57:20.607]  INFO Mapped "{[/ops/homePage.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.OpsController.homePage()
[2018-07-04 22:57:20.611]  INFO Mapped "{[/producer/producerConnection.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.ProducerController.producerConnection(java.lang.String,java.lang.String)
[2018-07-04 22:57:20.614]  INFO Mapped "{[/test/runTask.do],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TestController.list() throws org.apache.rocketmq.client.exception.MQClientException,org.apache.rocketmq.remoting.exception.RemotingException,java.lang.InterruptedException
[2018-07-04 22:57:20.620]  INFO Mapped "{[/topic/deleteTopic.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.delete(java.lang.String,java.lang.String)
[2018-07-04 22:57:20.622]  INFO Mapped "{[/topic/list.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.list() throws org.apache.rocketmq.client.exception.MQClientException,org.apache.rocketmq.remoting.exception.RemotingException,java.lang.InterruptedException
[2018-07-04 22:57:20.623]  INFO Mapped "{[/topic/sendTopicMessage.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.sendTopicMessage(org.apache.rocketmq.console.model.request.SendTopicMessageRequest) throws org.apache.rocketmq.remoting.exception.RemotingException,org.apache.rocketmq.client.exception.MQClientException,java.lang.InterruptedException
[2018-07-04 22:57:20.627]  INFO Mapped "{[/topic/stats.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.stats(java.lang.String)
[2018-07-04 22:57:20.628]  INFO Mapped "{[/topic/route.query],methods=[GET]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.route(java.lang.String)
[2018-07-04 22:57:20.630]  INFO Mapped "{[/topic/queryConsumerByTopic.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.queryConsumerByTopic(java.lang.String)
[2018-07-04 22:57:20.633]  INFO Mapped "{[/topic/createOrUpdate.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.topicCreateOrUpdateRequest(org.apache.rocketmq.console.model.request.TopicConfigInfo)
[2018-07-04 22:57:20.637]  INFO Mapped "{[/topic/queryTopicConsumerInfo.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.queryTopicConsumerInfo(java.lang.String)
[2018-07-04 22:57:20.637]  INFO Mapped "{[/topic/examineTopicConfig.query]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.examineTopicConfig(java.lang.String,java.lang.String) throws org.apache.rocketmq.remoting.exception.RemotingException,org.apache.rocketmq.client.exception.MQClientException,java.lang.InterruptedException
[2018-07-04 22:57:20.638]  INFO Mapped "{[/topic/deleteTopicByBroker.do],methods=[POST]}" onto public java.lang.Object org.apache.rocketmq.console.controller.TopicController.deleteTopicByBroker(java.lang.String,java.lang.String)
[2018-07-04 22:57:20.644]  INFO Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
[2018-07-04 22:57:20.646]  INFO Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
[2018-07-04 22:57:20.810]  INFO Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2018-07-04 22:57:20.810]  INFO Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2018-07-04 22:57:20.858]  INFO Detected @ExceptionHandler methods in globalExceptionHandler
[2018-07-04 22:57:20.859]  INFO Detected ResponseBodyAdvice implementation in globalRestfulResponseBodyAdvice
[2018-07-04 22:57:20.937]  INFO Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[2018-07-04 22:57:21.021]  INFO Adding welcome page: class path resource [static/index.html]
[2018-07-04 22:57:21.781]  INFO Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
[2018-07-04 22:57:21.785]  INFO Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.790]  INFO Mapped "{[/trace || /trace.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.792]  INFO Mapped "{[/info || /info.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.796]  INFO Mapped "{[/dump || /dump.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.798]  INFO Mapped "{[/configprops || /configprops.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.800]  INFO Mapped "{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException
[2018-07-04 22:57:21.801]  INFO Mapped "{[/health || /health.json],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(java.security.Principal)
[2018-07-04 22:57:21.802]  INFO Mapped "{[/mappings || /mappings.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.809]  INFO Mapped "{[/autoconfig || /autoconfig.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.815]  INFO Mapped "{[/env/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
[2018-07-04 22:57:21.815]  INFO Mapped "{[/env || /env.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:21.819]  INFO Mapped "{[/beans || /beans.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
[2018-07-04 22:57:22.085]  INFO Registering beans for JMX exposure on startup
[2018-07-04 22:57:22.095]  INFO Registering beans for JMX exposure on startup
[2018-07-04 22:57:22.106]  INFO Starting beans in phase 0
[2018-07-04 22:57:22.123]  INFO Located managed bean 'requestMappingEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=requestMappingEndpoint]
[2018-07-04 22:57:22.160]  INFO Located managed bean 'environmentEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=environmentEndpoint]
[2018-07-04 22:57:22.168]  INFO Located managed bean 'healthEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=healthEndpoint]
[2018-07-04 22:57:22.291]  INFO Located managed bean 'beansEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=beansEndpoint]
[2018-07-04 22:57:22.304]  INFO Located managed bean 'infoEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=infoEndpoint]
[2018-07-04 22:57:22.313]  INFO Located managed bean 'metricsEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=metricsEndpoint]
[2018-07-04 22:57:22.319]  INFO Located managed bean 'traceEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=traceEndpoint]
[2018-07-04 22:57:22.325]  INFO Located managed bean 'dumpEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=dumpEndpoint]
[2018-07-04 22:57:22.335]  INFO Located managed bean 'autoConfigurationReportEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=autoConfigurationReportEndpoint]
[2018-07-04 22:57:22.341]  INFO Located managed bean 'configurationPropertiesReportEndpoint': registering with JMX server as MBean [org.springframework.boot:type=Endpoint,name=configurationPropertiesReportEndpoint]
[2018-07-04 22:57:22.361]  INFO No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
[2018-07-04 22:57:22.392]  INFO Initializing ProtocolHandler ["http-nio-8080"]
[2018-07-04 22:57:22.417]  INFO Starting ProtocolHandler [http-nio-8080]
[2018-07-04 22:57:22.440]  INFO Using a shared selector for servlet write/read
[2018-07-04 22:57:22.486]  INFO Tomcat started on port(s): 8080 (http)
[2018-07-04 22:57:22.501]  INFO Started App in 10.412 seconds (JVM running for 11.625)

因为 RocketMQ-Console 并非官方发布的项目,只是社区贡献和维护,且截止目前 GitHub 上的最近更新日期是 2017 年 4 月,已经一年多未更新了,所以本文不对 RocketMQ-Console 的功能做过多介绍,后续文章会穿插一些 RocketMQ-Console 的功能介绍用于查询示例代码执行结果。希望后续官方能持续更新。

RocketMQ-Console 安装说明请参考:https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console,其中包括在 Docker 中安装运行的说明。

RocketMQ-Console 使用文档请参考:https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md

上一篇:RocketMQ 安装部署及运行
下一篇:RocketMQ 消息发送方式 -- 同步(reliable synchronous)

你可能感兴趣的:(RocketMQ Console 的安装及运行)