• RocketMq(二)-访问面板搭建及问题修复


    上一篇记录了RocketMq下载安装与启动:

    本篇记录搭建RocketMq访问面板,是一个SringBoot项目,因此下载修改配置,启动即可。
    因为RocketMq安装在阿里云上并非本地,因此也踩了不少坑,在此记录一下。

    一、下载项目

    建议先将项目fork到自己账号下,然后从自己账号通过git工具下载,这样修改了就可以提交。

    (1) 访问rocketmq-externals项目

    https://github.com/apache/rocketmq-externals
    在这里插入图片描述
    可以直接下载,建议先fork到自己账号
    使用idea直接下载
    在这里插入图片描述
    但目前下载下来并无面板的代码,需要切换下分支
    在这里插入图片描述
    然后修改配置文件application.properties,将rocketmq.config.namesrvAddr设置为自己的RocketMq的nameserver访问地址即可启动,如localhost:9876

    (2) 访问rocketmq-dashboard项目

    https://github.com/user-system/rocketmq-dashboard
    下载修改application.yml中namesrvAddr即可启动访问
    在这里插入图片描述
    注:namesrvAddr也可以不修改,可以在登录面板运维处修改
    在这里插入图片描述

    二、访问效果

    在这里插入图片描述

    三、踩的坑

    启动访问并未能达到预期效果,会有各种报错,遇到后一一处理

    1、连接不上服务器9876端口

    则需要在阿里云安全规则中添加规则,配置端口9876,也需要确保防火墙放行9876端口(可以在宝塔管理页面设置)
    配置后可以连接RocketMq,但是还会报其他连接异常,需要添加开放以下端口:9876、10909、10911、10912

    2、连接报错RemotingConnectException: connect to 172.17.0.1:10:109011

    启动后定时任务持续报错:

    java.lang.RuntimeException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to 172.16.0.155:10911 failed
    	at com.google.common.base.Throwables.propagate(Throwables.java:160)
    	at org.apache.rocketmq.console.service.impl.ClusterServiceImpl.list(ClusterServiceImpl.java:63)
    	at org.apache.rocketmq.console.controller.ClusterController.list(ClusterController.java:38)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220)
    	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
    	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
    	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
    	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    解决方法:修改RocketMq安装目录下conf文件夹下的broker.conf文件,添加一行brokerIP1=<本机ip>,例如

    brokerIP1=192.168.1.19
    
    • 1

    在这里插入图片描述
    重启broker

    # cd ../bin
    # nohup sh mqbroker -n localhost:9876 -c ../conf/broker.conf &
    
    • 1
    • 2

    3、修改rocketmq版本

    如果需要或者避免兼容性问题,需要修改pom文件rocketmq版本号,以修改rocketmq-externals项目为例,本篇修改为

    4.9.4
    
    • 1

    修改后编译会报错,报错一个个处理,基本上参数不对应、接口方法未实现、异常未抛出等,举例调整代码:
    (1) 将

    DefaultMQPullConsumer consumer = new DefaultMQPullConsumer(MixAll.TOOLS_CONSUMER_GROUP, null);
    
    • 1

    改为:

    RPCHook rpcHook = null;
    DefaultMQPullConsumer consumer = new DefaultMQPullConsumer(MixAll.TOOLS_CONSUMER_GROUP, rpcHook);
    
    • 1
    • 2

    在这里插入图片描述
    (2)添加参数
    在这里插入图片描述
    (3)添加抛异常,有多处,不一一举例了
    在这里插入图片描述

    四、参考链接:

  • 相关阅读:
    MySQL 视图简介
    非关系型数据库MongoDB的特点及安装
    ikuai路由器通过curl模拟功能操作
    对于Java中的Loop或For-each,哪个更快
    Redis为什么这么快?Redis的线程模型与Redis多线程
    LeetCode刷题(10)
    解析webpack——模块化历史与webpack的诞生
    Spring MVC统一异常处理的3种方式(附带实例)
    git代码回退方法简要总结
    已解决:rm: 无法删除“/opt/module/zookeeper-3.4.10/zkData/zookeeper_server.pid“: 权限不够
  • 原文地址:https://blog.csdn.net/qq_21067307/article/details/126031648