RocketMQ, Dashboard, 控制台安装

news2024/12/23 22:07:02

文章说明

本文主要说明RocketMQ的控制台(Dashboard)的安装过程。工作中一直用的是别人装好的,这次终于自己亲手装了一遍。
由于每次都要启动三个应用,比较烦,于是我写了一键启动脚本,分享给大家。这个脚本可以一键启动RocketMQ的所有应用。还能自动识别应用是否已经启动成功。

文章目录

  • 文章说明
  • 参考说明
  • 控制台(Dashboard)
    • 环境要求
    • 下载
    • 修改配置
    • 打包
    • 启动
    • 访问
    • 控制台使用
  • 一键启动脚本

参考说明

本文内容主要来源于马士兵李瑾老师的视频教程(RocketMQ基础实战版),结合了老师的笔记以及根据自己的实践做了一些修改。

控制台(Dashboard)

官网文档:https://rocketmq.apache.org/zh/docs/4.x/deployment/03Dashboard

环境要求

jdk1.8,Maven 3.2.x+

启动前确认:RocketMQ NameServer和Broker已安装且已经启动成功。

下载

新版本地址(推荐):https://rocketmq.apache.org/zh/download

老版本地址下载:https://codeload.github.com/apache/rocketmq-externals/zip/master

本文用的是RocketMQ Dashboard 1.0.0 新版本。

下载成功后解压到一个源代码目录。例如:D:\Workspace\idea\alibaba\rocketmq-dashboard-1.0.0

修改配置

使用idea载入刚才下载好的源代码,然后在settings中确认maven配置正确。

打开src/main/resources/application.properties文件,进行如下配置

# dashboard服务启动之后的端口
server.port=8089
# 配置NameServer地址,如果多个可以以分号隔开
rocketmq.config.namesrvAddr=localhost:9876

打包

执行mvn install -Dmaven.test.skip=true命令,可以在右侧的Maven页签的lifecycle中双击install,同时勾选Skip Test。

成功的话会在target目录生成jar包:rocketmq-dashboard-1.0.0.jar

启动

启动之前,请先确保配置文件中对应的NameSever和Broker已经启动。否则dashboard启动起来也没读取不到内容。

启动有如下方式

  • 通过打出来的jar包启动。cmd进入项目target目录,执行java -jar rocketmq-dashboard-1.0.0.jar
  • 通过代码直接启动。通过启动类org.apache.rocketmq.dashboard.App启动

访问

浏览器输入localhost:8089,成功后即可进行管理端查看。

控制台使用

运维

  • 你可以修改这个服务使用的namesrv的地址

  • 你可以修改这个服务是否使用VIPChannel(如果你的mq server版本小于3.5.8,请设置不使用)
    在这里插入图片描述

驾驶舱

  • 查看broker的消息总量,左边的是最近5分钟的趋势图。

  • 查看单一主题的消息量(总量/趋势图)
    在这里插入图片描述

集群

  • 查看集群的broker情况,分布情况,cluster与broker关系

  • 查看broker具体信息/运行信息

  • 查看broker配置信息
    在这里插入图片描述

主题页面

  • 展示所有的主题,可以通过搜索框进行过滤

  • 筛选 普通/重试/死信 主题,重试为消息发送失败之后的重试主题。死信就是默认发送失败15次的消息。

  • 添加/更新主题

l clusterName 创建在哪几个cluster上

l brokerName 创建在哪几个broker上

l topicName 主题名

l writeQueueNums 写队列数量

l readQueueNums 读队列数量

l perm //2是写 4是读 6是读写

  • 状态 查询消息投递状态(投递到哪些broker/哪些queue/多少量等)

  • 路由 查看消息的路由(现在你发这个主题的消息会发往哪些broker,对应broker的queue信息)

  • CONSUMER管理(这个topic都被哪些group消费了,消费情况何如)

  • topic配置(查看变更当前的配置)

  • 发送消息(向这个主题发送一个测试消息)

  • 重置消费位点(分为在线和不在线两种情况,不过都需要检查重置是否成功)

  • 删除主题 (会删除掉所有broker以及namesrv上的主题配置和路由信息)
    在这里插入图片描述

消费者页面

  • 展示所有的消费组,可以通过搜索框进行过滤

  • 刷新页面/每隔五秒定时刷新页面

  • 按照订阅组/数量/TPS/延迟 进行排序

  • 添加/更新消费组

l clusterName 创建在哪几个集群上

l brokerName 创建在哪几个broker上

l groupName 消费组名字

l consumeEnable //是否可以消费 FALSE的话将无法进行消费

l consumeBroadcastEnable //是否可以广播消费

l retryQueueNums //重试队列的大小

l brokerId //正常情况从哪消费

l whichBrokerWhenConsumeSlowly//出问题了从哪消费

  • 终端 在线的消费客户端查看,包括版本订阅信息和消费模式

  • 消费详情 对应消费组的消费明细查看,这个消费组订阅的所有Topic的消费情况,每个queue对应的消费client查看(包括Retry消息)

  • 配置 查看变更消费组的配置

  • 删除 在指定的broker上删除消费组
    在这里插入图片描述

生产者页面

通过Topic和Group查询在线的消息生产者客户端

信息包含客户端主机 版本
在这里插入图片描述

消息查询页面

  • 根据Topic和时间区间查询 *由于数据量大 最多只会展示2000条,多的会被忽略

  • 根据Topic和Key进行查询

最多只会展示64条

  • 根据消息主题和消息Id进行消息的查询

  • 消息详情可以展示这条消息的详细信息,查看消息对应到具体消费组的消费情况(如果异常,可以查看具体的异常信息)。可以向指定的消费组重发消息

在这里插入图片描述

一键启动脚本

这个脚本主要用于一键启动RocketMQ的NameServer,Broker,Dashboard三个应用。
并且启动之前会自动识别要启动的应用是否已经启动,启动成功则自动启动下一个。

#!/bin/bash

#软件安装目录设置,先读环境变量,读不到则用默认值
ROCKETMQ_HOME=$ROCKETMQ_HOME
if [ -z $ROCKETMQ_HOME]; then
	echo "ROCKETMQ_HOME is not set! the program will use default value"
	ROCKETMQ_HOME=/www/wwwroot/install/rocketmq-all-4.9.7-bin-release
fi
echo "ROCKETMQ_HOME=$ROCKETMQ_HOME"


# 启动rocketmq nameserver
cd ${ROCKETMQ_HOME}/bin
# 检查Zookeeper是否启动成功
if jps -ml | grep "namesrv.NamesrvStartup"; then
	echo "rocketmq nameserver is running.";
else
	echo "rocketmq nameserver is Starting ...";
	rm -rf nohup.out;
	nohup sh mqnamesrv &
	count=0
	while [ $count -le 10 ]; do
	  if tail -100 nohup.out | grep "Name Server boot success"; then
		echo "rocketmq nameserver has been started successfully";
		break
	  else
		count=$((count+1))
		sleep 2
	  fi
	done
fi

# 启动rocketmq broker
# 检查Zookeeper是否启动成功
if jps -ml | grep "org.apache.rocketmq.broker.BrokerStartup"; then
	echo "rocketmq broker is running.";
else
	echo "rocketmq broker is Starting ...";
	rm -rf nohup.out;
	nohup sh mqbroker -c ../conf/broker.conf -n dev-study:9876 autoCreateTopicEnable=true &  
	count=0
	while [ $count -le 10 ]; do
	  if tail -100 nohup.out | grep "broker.*success"; then
		echo "rocketmq broker has been started successfully";
		break
	  else
		count=$((count+1))
		sleep 2
	  fi
	done
fi

# 启动rocketmq dashboard
cd ${ROCKETMQ_HOME}/dashboard
if jps -ml | grep "rocketmq-dashboard"; then
	echo "rocketmq dashboard is running.";
else
	echo "rocketmq dashboard is Starting ...";
	rm -rf nohup.out;
	nohup java -jar rocketmq-dashboard-1.0.0.jar & 
	count=0
	while [ $count -le 10 ]; do
	  if tail -100 nohup.out | grep "Tomcat started on port(s)"; then
		echo "rocketmq dashboard has been started successfully";
		break
	  else
		count=$((count+1))
		sleep 2
	  fi
	done
fi

echo "All services started.";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/800957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AC695-按键处理-带UI

AC695-按键修改 消息发出 对应界面处理

0725 区块链1.0 2.0 3.0 智能合约 比特币 以太坊 DAG 有向无环图

文献阅读:[1]华亚洲. 基于改进Block-DAG区块链的时空数据存储及查询方法研究[D].辽宁大学,2022.DOI:10.27209/d.cnki.glniu.2022.001364.[1]华亚洲,丁琳琳,陈泽等.面向时空数据的区块链构建及查询方法[J].计算机应用,2022,42(11):3429-3437. 文献总结: …

基于MQTT阿里云服务器的物联网关灯项目--舵机

一、关灯神器 本文章由作者李建华所编写,用到的服务器是阿里云部署好的mqtt,链接如有失效,请联系作者微信:Likz777777 要求:不破坏原有功能、可以接入苹果、网页小程序均可控制 设备:香橙派、舵机 具体实现方法: 1.局域网控制&#xff1a…

PHP在线相册--【白嫖项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图phpStudy 设置导数据库项目目录如图:代码部分:主页 配套资源作业: 本系列校训 用免费公开视频,卷飞培训班哈人&…

LeetCode算法心得——合并后数组中的最大元素

大家好,我是晴天学长,这是一道动态规划的逆向思维题,此题甚是神奇!💪💪💪 1 )合并后数组中的最大元素 2) .算法思路 只能选择旁边的,而且还是比自己等大或者比自己小的…

码银送书第四期《Python之光》

作为一种极其流行的编程语言,Python已经成为了当今最为重要的生产力工具之一。无论小学生还是各行各业的从业人员,都开始学习Python编程。这种编程语言在许多领域中都有广泛的应用,因此Python编程已经成为了许多职业的必备能力或者加分项。 …

【云边有个小卖部】上新《探秘Linux》第二章 Linux权限管理

🕺作者: 主页 我的专栏C语言从0到1C初阶C进阶数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我…

mac下安装vue cli脚手架并搭建一个简易项目

目录 1、确定本电脑下node和npm版本是否为项目所需版本。 2、下载vue脚手架 3、创建项目 1、下载node。 如果有node,打开终端,输入node -v和npm -v , 确保node和npm的版本,(这里可以根据自己的需求去选择,如果对最新版本的内容有…

JVM | 类加载是怎么工作的

类加载是怎么工作的 引言类加载器工作原理 | 城市建设过程1. 类加载器加载类前过程JVM进程启动 | 建筑工程立项Bootstrap类加载器创建扩展和应用类加载器 | 高级工程师的两位得力助手 2. 类加载器加载类后过程应用类加载器加载Building链接过程(验证,准备…

Huge and Efficient! 一文了解大规模预训练模型高效训练技术

本文分为三部分介绍了大模型高效训练所需要的主要技术,并展示当前较为流行的训练加速库的统计。文章也同步发布在AI Box知乎专栏(知乎搜索 AI Box专栏),欢迎大家在知乎专栏的文章下方评论留言,交流探讨! 引…

计算机图形学十四路径追踪与渲染方程

路径追踪(Path Tracing)与渲染方程(Render Equation) 简介 利用路径追踪我们可以实现比whitted-style ray tracing更好的全局光照(GI)效果。它的理论基础是渲染方程,最开始由吉姆卡吉亚&#…

066、故障处理之热点问题

为什么要解决热点 分布式架构中各个组件的理想状态:资源利用率相对均衡 形成写热点的原因 高频访问的小表SQL执行计划不合理具有顺序增长属性的索引扫描 数据组织模型 例如数据是序列递增,则有可能数据全部都集中一个region上 ,或者集中…

什么是等保定级?

TOC 一、等保评测介绍 1.1 等保定级目的 网络安全等级保护介绍:目的就是涉及民生问题的信息系统,要按照影响,提前划定等级 实施网络安全保护 信息系统:就是保护的系统,比如 魔幻的 健康码系统安全产品:健…

【lesson5】linux常见权限问题

文章目录 目录权限umask粘滞位 目录权限 先来思考一个问题: 进入一个目录需要什么权限呢? 由上图我们可以得知,进入目录需要x权限,那么没有r和w权限是什么情况呢? 从图中我们可以得知没有r权限不能查看目录里面的内容&#xff…

基于STM32设计的智能教室管理系统

前言 本文介绍了一个智慧教室的设计,该设计由电器设备控制系统、环境检测系统和考勤系统三大模块构成。通过使用STM32微处理器和物联网电器设备控制中心,实现对教室内风扇、照明灯和窗帘等电器设备的智能化统一控制与运行。同时,环境检测系统可以实时监测环境光强、温度、湿…

模型调参及优化

调参 调权重参数,偏置参数 训练数据集用来训练参数w,b 调超参数 验证数据集用来选择超参数学习率lr,隐藏层大小等 如何调参 当泛化误差和训练误差都没有降下去说明欠拟合;当训练误差降下去,但泛化误差出现上升形式&…

33. 本地记事本

本地记事本 html部分 <button class"add"><i class"iconfont icon-jiahao"></i> </button>css部分 *{margin: 0;padding: 0; } body{background-color: #7bdaf3;display: flex;padding-top: 3rem;flex-wrap: wrap; } .add{pos…

Vue2基础一、快速入门

零、文章目录 Vue2基础一、快速入门 1、Vue 概念 &#xff08;1&#xff09;为什么学 前端必备技能 岗位多&#xff0c;绝大互联网公司都在使用Vue 提高开发效率 高薪必备技能&#xff08;Vue2Vue3&#xff09; &#xff08;2&#xff09;Vue是什么 **概念&#xff1a;…

第二届“鼎信杯”榜单发布,麒麟信安荣获“优秀技术支撑奖”

由中国电子信息产业发展研究院、北京市海淀区人民政府主办&#xff0c;中国软件评测中心&#xff08;工业和信息化部软件与集成电路促进中心&#xff09;、中关村科学城管委会和北京市国际技术贸易协会承办的“2023 鼎信杯信息技术发展论坛”日前在北京举办。麒麟信安受邀参加主…

和鲸 ModelWhale 与麒麟系统适配认证,打造自主安全、性能可靠的信创 AI 基础软件

发展信创&#xff0c;解决核心技术的自主可控问题&#xff0c;是我国产业升级和数字经济发展过程中的重要命题。信创产业链主要由基础硬件、基础软件、应用软件、信息安全及云计算平台等几部分组成&#xff0c;拥抱信创国产化需要各厂商聚力共创生态&#xff0c;增强自身产品的…