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 地址
注意:如果不修改此处配置文件,则启动时默认读取环境变量
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
,可以看到如下界面
注意:第 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)