Centos7安装RocketMQ[图文教程]

文章目录

    • RocketMQ介绍
    • 基于Linux服务部署RocketMQ(单机)
      • 配置JDK环境
      • 下载RocketMQ
      • 部署RocketMQ
        • 1、解压
        • 2、修改VM参数
        • 3、配置环境变量
        • 4、编写Service文件
        • 5、启动服务
    • 基于Docker方式部署RocketMQ
      • 安装Docker
      • 编写`docker-compose`文件
      • 启动RocketMQ服务
    • 部署RocketMQ-Dashboard服务
      • 基于docker镜像部署
      • 基于源码部署
    • 常见问题

RocketMQ介绍

官网地址:https://rocketmq.apache.org/zh/

‌RocketMQ是一个分布式消息中间件,具有高性能、高可靠、高实时和分布式等特点。‌ 它支持事务消息、顺序消息、批量消息、定时消息和消息回溯等功能。RocketMQ的核心组件包括Producer、Consumer、Broker和NameServer,这些组件共同工作,提供了低延迟和高吞吐量的消息处理能力‌。
RocketMQ的特点包括:
‌高性能‌:支持万亿级吞吐量,满足微服务和大数据场景需求。
‌高可靠‌:提供金融级稳定性,广泛用于交易核心链路。
‌高实时‌:实现实时的消息订阅和消费机制。
‌分布式‌:Producer、Consumer和队列都可以分布式部署,支持水平扩展。
‌严格的消息顺序‌:通过发送到同一队列保证消费顺序。
‌丰富的消息拉取模式‌:支持推(Push)和拉(Pull)两种模式,并提供多种消息协议。
‌亿级消息堆积能力‌:确保在高负载情况下消息不会丢失。
‌较少的依赖‌:采用Shared-nothing架构,零外部依赖,确保系统稳定‌。
RocketMQ的应用场景包括云边端一体化数据处理、微服务架构中的消息治理、Serverless应用场景等。它支持海量Topic需求,可以与任意系统建立连接,适用于构建流式ETL、数据管道和数据湖等。RocketMQ还被广泛应用于电商项目、订单交易系统等高并发系统中,帮助提升开发效率和系统稳定性‌。

基于Linux服务部署RocketMQ(单机)

配置JDK环境

参考另一篇教程:CentOS7安装配置JDK环境 保姆级教程

下载RocketMQ

官方下载地址
在这里插入图片描述
这里我们可以直接下载二进制(Binary)的包(如果有需要自己编译的话可以下载源码包(Source))
下载完后我们需要上传到服务器上面。

这里推荐直接在服务器上使用命令下载,这样就可以跳过上传这一步操作了

# 这里我们下载版本是5.2.0(就冲这个版本号 “我爱你”)
# 使用wget命令
wget https://dist.apache.org/repos/dist/release/rocketmq/5.2.0/rocketmq-all-5.2.0-bin-release.zip# 使用curl命令
curl -O https://dist.apache.org/repos/dist/release/rocketmq/5.2.0/rocketmq-all-5.2.0-bin-release.zip

在这里插入图片描述

部署RocketMQ

1、解压
# 解压
unzip rocketmq-all-5.2.0-bin-release.zip# 移动到固定位置(这里可以使用自己的位置)
cp -r rocketmq-all-5.2.0-bin-release /usr/local/rocketmq
2、修改VM参数

RocketMQ默认的内存分配比较大,机器内存比较小的话需要调整一下。具体配置按需调整
runbroker.sh
在这里插入图片描述

3、配置环境变量
echo "export ROCKETMQ_HOME=/opt/rocketmq" >> ~/.bashrc
echo "export PATH=\$PATH:\$ROCKETMQ_HOME/bin" >> ~/.bashrc
source ~/.bashrc

或者操作 /etc/profile文件

4、编写Service文件

在Linux系统中,服务的配置文件通常位于/etc/systemd/system/目录下。当你创建了一个新的服务文件后,需要重新加载systemd的配置,并重启服务以使新服务生效。

  • mqnameser.service
    [Unit]
    Description=RocketMQ NameServer Service
    After=network.target[Service]
    Type=simple
    ExecStart=/usr/local/rocketmq/bin/mqnamesrv
    ExecStop=/usr/local/rocketmq/bin/mqshutdown namesrv
    User=root
    Restart=on-failure
    RestartSec=5s
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=mqnameser
    LimitNOFILE=65536[Install]
    WantedBy=multi-user.target
    
  • mqbroker.service
    [Unit]
    Description=RocketMQ Broker Service
    After=network.target mqnameser.service[Service]
    Type=simple
    ExecStart=/usr/local/rocketmq/bin/mqbroker -n localhost:9876
    ExecStop=/usr/local/rocketmq/bin/mqshutdown broker
    User=root
    Restart=on-failure
    RestartSec=5s
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=mqbroker
    LimitNOFILE=65536[Install]
    WantedBy=multi-user.target
    
  • mqproxy.service
    [Unit]
    Description=RocketMQ Proxy Service
    After=network.target mqbroker.service[Service]
    Type=simple
    ExecStart=/usr/local/rocketmq/bin/mqproxy -n localhost:9876
    ExecStop=/usr/local/rocketmq/bin/mqshutdown proxy
    User=root
    Restart=on-failure
    RestartSec=5s
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=mqproxy
    LimitNOFILE=65536[Install]
    WantedBy=multi-user.target
    
5、启动服务
# 重载服务
sudo systemctl daemon-reloadsudo systemctl start mqnameser.servicesudo systemctl start mqbroker.servicesudo systemctl start mqproxy.service

基于Docker方式部署RocketMQ

安装Docker

请参考另一篇教程:CentOS7安装Docker教程(图文)

编写docker-compose文件

# 创建服务目录,可以自定义 按自己的需要调整
mkdir /data/rocketmq
# 进入目录
cd /data/rocketmq
# 创建文件
touch docker-compose.yml

docker-compose.yml文件:

version: '3'
services:namesrv:image: apache/rocketmq:5.2.0container_name: rmqnamesrvports:- 9876:9876networks:- rocketmqcommand: sh mqnamesrvbroker:image: apache/rocketmq:5.2.0container_name: rmqbrokerports:- 10909:10909- 10911:10911- 10912:10912environment:- NAMESRV_ADDR=rmqnamesrv:9876depends_on:- namesrvnetworks:- rocketmqcommand: sh mqbrokerproxy:image: apache/rocketmq:5.2.0container_name: rmqproxynetworks:- rocketmqdepends_on:- broker- namesrvports:- 8080:8080- 8081:8081restart: on-failureenvironment:- NAMESRV_ADDR=rmqnamesrv:9876command: sh mqproxyconsole:image: styletang/rocketmq-console-ng:latestrestart: alwayscontainer_name: rmqconsolenetworks:- rocketmqdepends_on:- namesrvports:- 8082:8080environment:JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
networks:rocketmq:driver: bridge

启动RocketMQ服务

cd /data/rocketmq/
# 启动服务
docker-compose up -d
# 查看docker运行中的服务
docker ps# 停止服务
docker-compose down

部署RocketMQ-Dashboard服务

RocketMQ Dashboard 是 RocketMQ 的管控利器,为用户提供客户端和应用程序的各种事件、性能的统计信息,支持以可视化工具代替 Topic 配置、Broker 管理等命令行操作。

官网介绍
源码github仓库地址

基于docker镜像部署

没有docker环境的参考这篇文章:CentOS7安装Docker教程(图文)

  1. 拉取 rocketmq-dashboard 镜像
    docker pull apacherocketmq/rocketmq-dashboard:latest	
    
  2. docker 容器中运行 rocketmq-dashboard
    $ docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
    

    提示
    namesrv.addr:port 替换为 rocketmq 中配置的 nameserver 地址:端口号
    开放端口号:808098761091111011 端口
    云服务器:设置安全组访问规则
    本地虚拟机:关闭防火墙,或 -add-port

基于源码部署

源码地址:apache/rocketmq-dashboard

下载并解压,切换至源码目录 rocketmq-dashboard-master/

  1. 编译rocketmq-dashboard
    mvn clean package -Dmaven.test.skip=true
    
  2. 运行 rocketmq-dashboard
    # 这里的rocketmq-dashboard-1.0.1-SNAPSHOT.jar文件名请使用实际名称(因为后续版本会迭代,版本号会更新)
    java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
    

    提示:Started App in x.xxx seconds (JVM running for x.xxx) 启动成功
    浏览器页面访问:namesrv.addr:8080
    关闭 rocketmq-dashboard : ctrl + c
    再次启动:执行 步骤2
    tips:下载后的源码需要上传到 Linux 系统上编译,本地编译可能会报错。

常见问题

  1. 碰上服务无法访问,先检查服务日志是否正常启动,再检查服务器防火墙和安全组是否有放开相应的端口。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式面试——FreeRTOS篇(四) 信号量

本篇为:FreeRTOS信号量篇 信号量 1、什么是信号量 答: 信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问。 2、信号量简介 答: 当计数值大于0,表示有信号量资源。当释放信号量,信号量计数…

SQL 干货 | 使用 EXISTS 编写 SELECT 查询

基于 SQL 中的 EXISTS 运算符为我们提供了一种基于其他数据是否存在(或不存在)来检索数据的简便方法。更具体地说,它是一个逻辑运算符,用于评估子查询的结果,并返回一个布尔值,该值指示是否返回了行。尽管 …

Elasticsearch 实战应用

Elasticsearch 实战应用 引言 Elasticsearch 是一个分布式、RESTful 风格的搜索和分析引擎,能够快速、实时地处理大规模数据,广泛应用于全文搜索、日志分析、推荐系统等领域。在这篇博客中,我们将从 Elasticsearch 的基本概念入手&#xff…

ubuntu 开放 8080 端口快捷命令

文章目录 查看防火墙状态开放 80 端口开放 8080 端口开放 22端口开启防火墙重启防火墙**使用 xhell登录**: 查看防火墙状态 sudo ufw status [sudo] password for crf: Status: inactivesudo ufw enable Firewall is active and enabled on system startup sudo…

curl执行报【先没有那个文件或目录】解决办法

开发微信发过了curl命令后,执行报错 是空格导致的,解决办法是打开下面网址重新输入空格即可 在线curl命令转代码 删除这个空格 重新输入空格

SCI论文快速排版:word模板一键复制样式和格式【重制版】

关注B站可以观看更多实战教学视频:hallo128的个人空间 SCI论文快速排版:word模板一键复制样式和格式:视频操作 SCI论文快速排版:word模板一键复制样式和格式【重制版】 模板与普通文档的区别 为了让读者更好地了解模板&#xff…

国产工具链GCKontrol-GCAir助力控制律开发快速验证

前言 随着航空领域技术的不断发展,飞机的飞行品质评估和优化成为了航空领域的一个重要任务,为了确保飞行器在各种复杂条件下的稳定性,控制律设计过程中的模型和数据验证需要大量仿真和测试。 本文将探讨基于世冠科技的国产软件工具链GCKont…

前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)

前端Vue字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin) 引言 最近前端引入了UI给的思源黑体字体文件,但是字体文件过于庞大,会降低页面首次加载的速度,目前我的项目中需要用到如下三个字体文…

IP协议报文

一.IP协议报头结构 二.IP协议报头拆解 1.4位版本 实际上只有两个取值,分别是4和6,4代表的是IPv4,6代表的是IPv6。 2.4位首部长度 IP协议报头的长度也是边长的,单位是*4,这里表示的大小为0~15,当数值为1…

从FastBEV来学习如何做PTQ以及量化

0. 简介 对于深度学习而言,通过模型加速来嵌入进C是非常有意义的,因为本身训练出来的pt文件其实效率比较低下,在讲完BEVDET后,这里我们将以CUDA-FastBEV作为例子,来向读者展示如何去跑CUDA版本的Fast-BEV,…

刷题 链表

面试经典150题 - 链表 141. 环形链表 class Solution { public:bool hasCycle(ListNode *head) {ListNode* slow head, *fast head;while (fast ! nullptr && fast->next ! nullptr) {slow slow->next;fast fast->next->next;if (slow fast) {return…

java9的juc包中的Flow接口(响应式编程/发布订阅模式)

前言 在java9的juc包中有一个Flow接口,里面有几个接口 分别为 Publisher 发布者Subscriber 订阅者 Subscription 订阅关系 Processor 中间操作用来完成发布订阅模式的响应式开发 我的环境为java17 响应式编程 底层:基于数据缓冲队列消息驱动模型异…

简单的网络爬虫爬取视频

示例代码爬取一个周杰伦相关视频 import requests# 自己想下载的视频链接 video_url https://vdept3.bdstatic.com/mda-qg8cnf4bw5x6bjs5/cae_h264/1720516251158906693/mda-qg8cnf4bw5x6bjs5.mp4?v_from_shkapp-haokan-hbf&auth_key1728497433-0-0-4a32e13f751e04754e4…

RandLA-Net PB C++

tensorflow pb 模型 实现 c++ 部署 Code: https://github.com/QingyongHu/RandLA-Net RandLA-Net PB C++ randlanet_tf.h #ifndef RANDLANET_TF_H_

gaussdb hccdp认证模拟题(判断)

1.在事务ACID特性中,原子性指的是事务必须始终保持系统处于一致的状态。(1 分) 错。 2.某IT公司在开发软件时,需要使用GaussDB数据库,因此需要实现软件和数据的链接,而DBeaver是一个通用的数据库管理工具和 SQL 客户端&#xff…

【windows Server 2012】把我的电脑放在桌面

WinR 打开命令输入框 输入 rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

深入理解 CSS 浮动(Float):详尽指南

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩!目录1. 什么是 CSS 浮动?2. CSS 浮动的历史背景3. 基本用法float 属性值浮动元素的行为 4. 浮动对文档流的影响5. 清除浮动clear 属性清除浮动的技巧1. 使用…

推荐一个物联网平台,支持源代码交付

ThingsKit物联网平台概述: ThingsKit是一个开箱即用的物联网平台,它支持通过行业标准的物联网协议(如MQTT、TCP、UDP、CoAP和HTTP)实现设备连接。这个平台能够帮助用户快速实现物联网的数据收集、分析处理、可视化和设备管理&…

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【297-313】

文章目录 297. super基本语法297.1 基本介绍297.2 基本语法 298. super使用细节1299. super使用细节2300. super使用细节3301. 方法重写介绍302. 方法重写细节303. 重写课堂练习1304. 重写课堂练习2输出结果: 姓名:田所浩二 年龄:24305. 养宠物引出多态3…

河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练;

河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练; 河道垃圾与水污染检测数据集(无人机视角) 项目概述 本数据集是一个专门用…