首页 教程 Web前端 RocketMQ 实战:在 macOS 上安装与前端访问全流程指南

RocketMQ 实战:在 macOS 上安装与前端访问全流程指南

RocketMQ 是一款高性能的分布式消息队列中间件,在微服务架构中得到了广泛应用。本文将引导您在 macOS 上安装 RocketMQ,并使用 RocketMQ 控制台进行前端访问和管理。同时,我们将涵盖如何优雅地关闭相关服务,以确保系统的稳定性。

1. 准备工作

在开始之前,确保您的 macOS 系统已经具备以下组件:

  • Java 运行时环境 (JRE):RocketMQ 依赖于 Java 运行环境,您可以通过以下命令检查 Java 是否已安装:

    java-version

    如果未安装 Java,可以使用 Homebrew 进行安装:

    brew install openjdk@11

  • Homebrew:macOS 常用的包管理工具,可以用它来简化软件安装过程。若尚未安装 Homebrew,可以在终端中执行以下命令进行安装:

    /bin/bash -c"$(curl-fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 安装 RocketMQ

虽然 RocketMQ 尚未提供直接的 Homebrew 安装方式,但我们可以通过 Apache 官方网站手动下载和安装。

  1. 下载 RocketMQ:从 Apache 官方网站下载最新版本的 RocketMQ(本文以 4.9.4 版本为例)。

    wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip

  2. 解压文件

    unzip rocketmq-all-4.9.4-bin-release.zip

  3. 进入 RocketMQ 目录

    cd rocketmq-all-4.9.4-bin-release

3. 启动 Name Server 和 Broker

RocketMQ 需要先启动 Name Server(名称服务器)来管理和发现 Broker。接下来启动 Broker 来接收和处理消息。

  1. 启动 Name Server

    nohupsh bin/mqnamesrv &

    可以通过查看日志文件来确认 Name Server 是否成功启动:

    tail-f ~/logs/rocketmqlogs/namesrv.log

  2. 启动 Broker:在确保 Name Server 启动成功后,执行以下命令来启动 Broker:

    nohupsh bin/mqbroker -n localhost:9876 &

    使用以下命令查看 Broker 启动日志,以确认启动状态:

    tail-f ~/logs/rocketmqlogs/broker.log

4. 安装和启动 RocketMQ 控制台

为了更方便地管理和监控 RocketMQ,我们可以安装 RocketMQ 控制台,这是一款基于 Web 的管理工具。

  1. 下载 RocketMQ 控制台:从 GitHub 仓库克隆 RocketMQ 控制台的代码:

    git clone https://github.com/apache/rocketmq-dashboard.git

  2. 进入项目目录

    cd rocketmq-dashboard

  3. 构建项目:使用 Maven 进行项目构建。确保您的系统已安装 Maven(可通过 Homebrew 安装:brew install maven)。

    mvn clean package -DskipTests

  4. 启动控制台:使用以下命令启动 RocketMQ 控制台,将 Name Server 地址指定为 localhost:9876

    java-jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar --rocketmq.config.namesrvAddr=localhost:9876

5. 访问 RocketMQ 控制台

RocketMQ 控制台默认运行在本地的 8080 端口。您可以在浏览器中输入以下地址访问控制台:

http://localhost:8080

进入控制台后,您可以进行以下操作:

  • 查看集群信息
  • 查看和管理 Broker 状态
  • 创建和管理 Topic(主题)
  • 查看消息的生产与消费情况

6. 测试消息发送和消费

  1. 创建 Topic:在 RocketMQ 控制台上,选择“Topic 管理”并创建一个新的 Topic。

  2. 发送消息:使用 RocketMQ 提供的工具类向 Topic 发送测试消息。进入 RocketMQ 安装目录,执行以下命令:

    exportNAMESRV_ADDR=localhost:9876 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

  3. 消费消息:使用以下命令消费测试消息:

    exportNAMESRV_ADDR=localhost:9876 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

通过这些步骤,您可以验证 RocketMQ 集群的消息发送与消费功能是否正常工作。

7. 优雅地关闭 RocketMQ Name Server 和 Broker

在关闭 RocketMQ 服务时,应首先关闭 Broker,然后再关闭 Name Server。这是因为 Broker 依赖于 Name Server 的存在,反过来则不然。以下是具体操作步骤和代码:

1. 关闭 Broker
  1. 找到 Broker 进程 ID (PID):

    使用以下命令查找 mqbroker 进程的 PID:

    ps-ef|grep mqbroker

  2. 关闭 Broker 进程:

    通过 PID 发送 TERM 信号来优雅地关闭 Broker:

    kill-TERM<PID>

    替换 <PID> 为实际的进程 ID。使用 TERM 信号可以让进程有机会清理资源并完成当前正在处理的任务,从而优雅地关闭。

    或者直接运行 RocketMQ 提供的关闭脚本:

    sh bin/mqshutdown broker

2. 关闭 Name Server
  1. 找到 Name Server 进程 ID (PID):

    使用以下命令查找 mqnamesrv 进程的 PID:

    ps-ef|grep mqnamesrv

  2. 关闭 Name Server 进程:

    使用 kill 命令发送 TERM 信号:

    kill-TERM<PID>

    替换 <PID> 为 Name Server 的进程 ID。

    或者使用 RocketMQ 提供的关闭脚本:

    sh bin/mqshutdown namesrv

8. 确认服务是否关闭

在执行关闭操作后,可以检查相关进程是否已经成功关闭:

ps-ef|grep mqbroker ps-ef|grep mqnamesrv

如果没有输出,说明进程已经成功关闭。

9. 总结

通过本文的指导,您已经在 macOS 上成功安装并配置了 RocketMQ,并通过 RocketMQ 控制台实现了对 RocketMQ 集群的前端访问和管理。同时,我们还介绍了如何优雅地关闭 Name Server 和 Broker,确保系统的稳定性。

进一步的操作可以包括配置更多的 Broker 节点、优化消息消费策略、集成更多的消息处理逻辑等。祝您在使用 RocketMQ 的过程中取得更加卓越的表现!

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.18k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.23k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.16k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.09k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  489

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  314

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。