一. RocketMQ部署
系统:Windows7;环境:JDK1.8、Maven3.3+、Git;
1.1 下载,进入RocketMQ官网http://rocketmq.apache.org/docs/quick-start/,按上图1,2,3步骤操作,
1.2 下载完后解压到自定义目录,MQ解压路径\rocketmq-all-4.6.0-bin-release;(Windows10系统解压路径不要出现空格)
1.3 配置环境变量,变量名:ROCKETMQ_HOME 变量值:MQ解压路径\MQ文件夹名;path后追加加;%ROCKETMQ_HOME%\bin
1.4 启动NameServer,cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动NAMESERVER。成功后会弹出提示框,此框勿关闭。
1.5 启动Broker,cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true’,启动BROKER。成功后会弹出提示框,此框勿关闭。启动闪退可参看:windows下安装rocketmq采坑全记录,删除C:\Users\”当前系统用户名”\store下的所有文件。
二. RocketMQ控制台部署
2.1 控制台源码下载
地址:GitHub - apache/rocketmq-externals: Mirror of Apache RocketMQ (Incubating),当前版本1.0.1;(如浏览器下载速度很慢,可复制链接到迅雷)
2.2 解压后进入目录MQ解压路径\rocketmq-externals-master\rocketmq-console\src\main\resources修改配置文件application.properties
2.3 进入目录MQ解压路径\rocketmq-externals-master\rocketmq-console,地址栏输入cmd回车,输入命令行:mvn spring-boot:run,然后回车,启动项目。(如果不想每次都跑该路劲下去启动控制台,可以做一个bat文件放桌面,具体操作方法,新建一个txt文档,写入cd /d G:\software\rocketmq-externals-master\rocketmq-console&&mvn spring-boot:run,保存后将文件后缀改为bat即可,绿色部分为解压后rocketmq-console的本地路径)
报错:
[INFO] Starting audit...
H:\software\rocketmq-externals-master\rocketmq-console\src\main\java\org\apache\
rocketmq\console\App.java:20:8: error: Unused import - org.springframework.boot.
autoconfigure.EnableAutoConfiguration.
Audit done.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.095 s
[INFO] Finished at: 2020-03-16T21:45:59+08:00
[INFO] Final Memory: 16M/39M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:
2.17:check (validate) on project rocketmq-console-ng: Failed during checkstyle e
xecution: There is 1 error reported by Checkstyle 6.11.2 with style/rmq_checksty
le.xml ruleset. -> [Help 1]
Unused import - org.springframework.boot.autoconfigure.EnableAutoConfiguration. 错误很明显,无效引用,启动类App.java注释掉它即可。
MQ解压路径\rocketmq-externals-master\rocketmq-console\src\main\java\org\apache\rocketmq\console 路劲下的App.java:
package org.apache.rocketmq.console;
import org.springframework.boot.SpringApplication;
//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
再次启动,成功,浏览器输入http://127.0.0.1:8088
启动过程中有报错日志:
[2020-03-16 22:28:33.168] INFO closeChannel: close the connection to remote add
ress[] result: true
[2020-03-16 22:28:33.196] ERROR Unexpected error occurred in scheduled task.
java.lang.RuntimeException: org.apache.rocketmq.remoting.exception.RemotingConne
ctException: connect to <null> failed
at com.google.common.base.Throwables.propagate(Throwables.java:160)
at org.apache.rocketmq.console.task.DashboardCollectTask.collectTopic(Da
shboardCollectTask.java:156)
at org.apache.rocketmq.console.task.DashboardCollectTask$$FastClassBySpr
ingCGLIB$$c818b8cd.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:2
04)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation
.invokeJoinpoint(CglibAopProxy.java:721)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:157)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.p
roceed(MethodInvocationProceedingJoinPoint.java:85)
at org.apache.rocketmq.console.aspect.admin.MQAdminAspect.aroundMQAdminM
ethod(MQAdminAspect.java:63)
这是因为Name Server服务没有启动,单独启动控制台就会有这个问题。
注意如果采用的广播模式,控制台消息是显示not_online的,“这是一个设计问题。RocketMQ客户端在广播模式下将消费进度记录在本地,而不是broker端。而admin tool查询的是broker端。因此获取不到消费进度。如果需要获取广播模式的消费进度,默认在客户端机器的主目录/.rocketmq_offsets/${clientId}/${groupName}/offsets.json
中”。参考:https://github.com/apache/rocketmq/issues/296
广播模式显示控制台一条消息都没消费
集群模式显示正常:
参考: