RocketMQ, Dashboard, 控制台安装

文章说明

本文主要说明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.";

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7. Spring Boot 配置文件

目录 1. 配置文件作用 2. 配置文件格式 3. properties 配置文件说明 3.1 properties 基本语法 3.2 读取配置文件 3.3 缺点 4. yml 配置文件说明 4.1 properties 基本语法 4.2 读取配置文件 4.3 yml 配置不同的数据类型 布尔值 整数值 null 值 配置对象 配置集合 …

国产化 | 记一次基于达梦创建数据库模式思考过程

开篇 首先,我们先来了解一下达梦数据库中用户与模式的概念,以及用户与模式之间的关系。 用户:主要是用来登录连接数据库,以及操作数据库对象等等。 模式:数据库中相关对象的集合。 关系:用户&#xff0…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)六:后台主页功能实现下

一、本章内容 接上一章,继续实现后端主页内容,主要实现工具栏对应相关内容的实现,包括系统消息、系统公告、全屏切换、语言切换、主题切换等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集…

Elasticsearch:使用 Elasticsearch ingest pipeline 丰富数据

在我之前的文章: Elasticsearch:如何使用 Elasticsearch ingest 节点来丰富日志和指标 Elasticsearch:enrich processor (7.5发行版新功能) 我有详细描述如何使用 ingest pipeline 来丰富数据。在今天的文章中里&am…

【已解决】 Celery 报错:AttributeError: ‘EntryPoints‘ object has no attribute ‘get‘

【已解决】 Celery 报错:AttributeError: EntryPoints object has no attribute get 1、起因2、实验环境3、解决方案 1、起因 今天闲来无事学习 Celery 分布式任务队列,写好代码发布并执行,报错了 AttributeError: EntryPoints object has n…

【数据结构】实验七:字符串

实验七 字符串实验报告 一、实验目的与要求 1)巩固对串的理解; 2)掌握串的基本操作实现; 3)掌握 BF 和 KMP 算法思想。 二、实验内容 1. 给定一个字符串ababcabcdabcde和一个子串abcd,查找字串是否在主串中出现。…

Oracle 多条记录根据某个字段获取相邻两条数据间的间隔天数,小于31天的记录都筛选出来

需求描述:在Oracle中 住院记录记录表为v_hospitalRecords,表中FIHDATE入院时间,FBIHID是住院号, 我想查询出每个患者在他们的所有住院记录中是否在一个月内再次入院(相邻的两条记录进行比较),并且住院记录大于一的患者…

【高分论文密码】大尺度空间模拟预测与数字制图教程

详情点击链接:【高分论文密码】大尺度空间模拟预测与数字制图 一,R语言空间数据及数据挖掘关键技术 1、R语言空间数据及应用特点 1)R语言基础与数据科学 2)R空间矢量数据 3)R栅格数据 2、R语言空间数据挖掘关键技术 二,R语言空间数据高…

ChatGPT有几个版本,哪个版本最强,如何选择适合自己的?

​ChatGPT就像内容生产界的瑞士军刀。它可以是数学导师、治疗师、职业顾问、编程助手,甚至是旅行指南。只要你知道如何让它做你想做的事,ChatGPT几乎可以提供你要的任何东西。 但重要的是,你知道哪个版本的ChatGPT最能满足你的需求吗&#x…

C++容器——list的模拟实现

目录 一.list的基本结构 二. 接下来就是对list类构造函数的设计了: 三.链表数据的增加: 四.接下来就是迭代器的创建了: 四.简单函数的实现: 五.构造与析构 六.拷贝构造和赋值重载 传统写法: 现代写法: 七.迭…

运维高级--shell脚本完成分库分表

为什么要进行分库分表 随着系统的运行,存储的数据量会越来越大,系统的访问的压力也会随之增大,如果一个库中的表数据超过了一定的数量,比如说MySQL中的表数据达到千万级别,就需要考虑进行分库分表; 其…

基于拉格朗日-遗传算法的最优分布式能源DG选址与定容(Matlab代码实现)

目录 1 概述 2 数学模型 2.1 问题表述 2.2 DG的最佳位置和容量(解析法) 2.3 使用 GA 进行最佳功率因数确定和 DG 分配 3 仿真结果与讨论 3.1 33 节点测试配电系统的仿真 3.2 69 节点测试配电系统仿真 4 结论 1 概述 为了使系统网损达到最低值&a…

Paragon NTFS2023最新版Mac读写NTFS磁盘工具

Paragon NTFS for Mac是Mac平台上一款非常优秀的读写工具,可以在Mac OS X中完全读写、修改、访问NTFS硬盘、U盘等外接设备的文件。这款软件最大的亮点简书可以让我们读写 NTFS 分区,因为在Mac OS X 系统上,默认状态下我们只能读取NTFS 分区&a…

【Ubuntu18.04免密码登录SSH】

Ubuntu18.04免密码登录SSH 1 查看Ubuntu18.04系统中是否存在SSH服务2 配置SSH2.1 先删除一下ssh的目录,重新配置2.2 生存公钥和私钥2.3 将公钥上传到需要登录的服务器2.4 测试登录 1 查看Ubuntu18.04系统中是否存在SSH服务 sudo ps -e |grep ssh没有的话&#xff0…

网络安全(黑客)自学基础到高阶路线

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

[JavaWeb]MySQL的安装与介绍

MySQL的安装与介绍 一.数据库相关概念1.1 数据库1.2 常见的关系型数据库管理系统 二.MySQL数据库1.MySQL的安装2.配置环境变量3.新建MySQL配置文件4.初始化MySQL5.注册MySQL的服务6.修改默认账户与密码7.连接MySQL服务8.MySQL的卸载 三.MySQL的数据模型1.关系型数据库 一.数据库…

Gitlab 备份与恢复

备份 1、备份数据(手动备份) gitlab-rake gitlab:backup:create2、备份数据(定时任务备份) [rootlocalhost ]# crontab -l 00 1 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 说明:每天凌晨1点备份数据…

C++之lambda表达式/function/using/typedef用法总结(一百六十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

软件设计师学习第一章

计算机组成与体系结构(6分) 内容概述 数据的表示 进制转换 R 进制转十进制使用按权展开法,其具体操作方式为:将 R 进制数的每一位数值用 Rk 形示,即幂的底数是 R ,指数为 k , k 与该位和小数点…