【Linux】Linux环境下安装RocketMQ(图文解说详细版)

news2024/9/22 11:35:14

文章目录

  • 一、简介
  • 二、MQ 下载
  • 三、JAVA 环境配置
  • 四、MQ 安装
  • 五、启动 MQ
  • 六、测试
  • 七、运行
  • 八、关闭 MQ

一、简介

消息队列中间件是分布式系统中的重要组件,主要解决应用耦合、流量削峰等问题,目前主流的 MQ 主要是:RocketMQ、kafka、RabbitMQ等。

RocketMQ 相较于其它 MQ 的优势:

  • 支持事务型消息(消息发送和 DB 操作保持两方的最终一致性,RabbitMQ 和 Kafka 不支持)
  • 支持结合 RocketMQ 的多个系统之间数据最终一致性(多方事务,二方事务是前提)
  • 支持 18 个级别的延迟消息(Kafka 不支持)
  • 支持指定次数和时间间隔的失败消息重发(Kafka 不支持,RabbitMQ 需要手动确认)
  • 支持 Consumer 端 Tag 过滤,减少不必要的网络传输(即过滤由MQ完成,而不是由消费者完成。RabbitMQ 和 Kafka 不支持)
  • 支持重复消费(RabbitMQ 不支持,Kafka 支持)

RocketMQ主要有四大核心组成部分:NameServer、Broker、Producer以及Consumer四部分

在这里插入图片描述

二、MQ 下载

官网下载:下载链接

进入是这样子的,这里是 rocketMq 最新版本的下载链接
在这里插入图片描述
在这里插入图片描述

如果你想下载旧版本的 rocketMq 的话,只需要改网址上的的版本就行,比如说把 4.9.3 改成 4.4.0
在这里插入图片描述

三、JAVA 环境配置

rocketmq 需要 Linux 上安装JDK,版本 1.8 以上,如果你 Linux 上已经配置了 Java 环境可跳过。

Linux 上配置 JAVA 环境可参见博客:Linux安装Java环境(OpenJDK)

在这里插入图片描述

四、MQ 安装

将下载好的安装包上传至服务器
在这里插入图片描述

rz 命令直接上传安装包 (这里我提前在 linux 上创建了一个文件夹 mkdir /soft/rocketmq 来存放管理的软件)
在这里插入图片描述

上传至 Linux 之后再解压
命令:unzip rocketmq-all-4.4.0-bin-release.zip

在这里插入图片描述

它的目录结构:

  • benchmark:这里面就是一些可以直接运行,进行测试的 sh 文件
  • bean:该目录是比较常用的,里面是一些可执行文件
  • conf:这里面就是一些配置文件
  • lib:就是 mq 所依赖的第三方 jar 包

五、启动 MQ

  1. 启动 NameServer
    进入 bin 目录 cd bin/
    后台启动 nohup sh mqnamesrv & 或者 nohup ./mqnamesrv &
    在这里插入图片描述

可以查看日志,看 mq 是否启动成功

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

在这里插入图片描述

或者通过端口号查看

netstat -an | grep 9876

在这里插入图片描述

  1. 启动 Broker
    在启动之前先修改两个配置
vim runserver.sh

在这里插入图片描述

mq 默认需要的内存是比较大的,根据自己 Linux 的内存大小去设置,我这里就改成 256 256 128 了

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

vim runbroker.sh
在这里插入图片描述

这里也修改成 256 256 128

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

启动 broker

nohup ./mqbroker -n localhost:9876 &

查看日志检测是否启动成功

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

在这里插入图片描述

又看到日志打印这个就说明启动成功了,注意:不要把它给关了

六、测试

开了两个窗口,都在 mq 的 bin 目录下,一个用于发送消息,一个用于接收消息
在这里插入图片描述

  1. 发送消息
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Producer

PS:如果报错了,可能出现的原因:

  • 防火墙没关

可以关闭掉防火墙

# 关闭防火墙
systemctl stop firewalld.service 
# 查看防火墙的状态
firewall-cmd --state 
# 禁止firewall开机启动
systemctl disable firewalld.service

或者让防火墙开放 MQ 相关的端口

# 开放name server默认端口
firewall-cmd --remove-port=9876/tcp --permanent
# 开放master默认端口
firewall-cmd --remove-port=10911/tcp --permanent
# 开放slave默认端口 (当前集群模式可不开启)
firewall-cmd --remove-port=11011/tcp --permanent 
# 重启防火墙
firewall-cmd --reload
  • 查下 broker 关掉了

把 nameServer 和 Broker 重新启动,这里我就说 broker 关掉引起的

  1. 接收消息
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Consumer

在这里插入图片描述

七、运行

#新建目录用来存放rocketmq-console的文件
mkdir /usr/local/rocketmq-console

cp target/rocketmq-console-ng-2.0.0.jar /usr/local/rocketmq-console/

#运行jar包
cd /usr/local/rocketmq-console/
java -jar rocketmq-console-ng-2.0.0.jar

运行成功在浏览器输入 http://127.0.0.1:8080 即可看到运行界面,账号密码: admin/admin
在这里插入图片描述

  • 配置账号密码
    我们开启了登录验证的功能,但是没有设置账户密码,这里默认的账户密码为 admin/admin。我们修改下这个密码。
    在 rocketmq-console的数据目录下新建账户文件 users.properties 。
vim /usr/local/rocketmq-console/data/users.properties
  • 设置账号密码
# 该文件支持热修改,即添加和修改用户时,不需要重新启动console
# 格式, 每行定义一个用户, username=password[,N]  #N是可选项,可以为0 (普通用户); 1 (管理员)  

#定义管理员 
admin=123456,1

#定义普通用户
#user1=user1
#user2=user2

然后我们杀进程,重启这个jar包即可。
在这里插入图片描述

八、关闭 MQ

进入 bin 目录下
关闭 NameServer

sh mqshutdown namesrv

关闭 Broker

sh mqshutdown broker

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

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

相关文章

GRPC - JAVA笔记

GRPC - JAVA笔记 gRPC简介 由google开源的一个高性能的RPc框架,由google内部的Stubby框架演化而来。2015年正式开源。云原生时代的RPC标准,由Go语言开发 gRPC的核心设计思路 网络通信 ------> gRPC 自己封装了网络通信的部分,提供了多种…

zookeeper超详细安装集群部署

文章目录 一、zookeeper官网下载二、JDK环境安装三、zookeeper安装1.zookeeper解压2.zookeeper配置文件介绍 克隆服务器1.网络检查2.集群配置3.启动集群4.错误记录 一、zookeeper官网下载 下载地址:https://archive.apache.org/dist/zookeeper/找到对应的版本下载 …

文章纠错免费软件-文字校对软件免费下载

自动校对稿件的软件 自动校对稿件的软件是一种基于自然语言处理(Natural Language Processing, NLP)和机器学习(Machine Learning)技术的工具,可以较为准确地检测和纠正文本中出现的语法、拼写、标点符号以及其他笔误…

如何优雅的白嫖ChatGPT

ChatGPT已经火了大半年了,但对于很多小伙伴来说想使用它还是有些麻烦,不仅需要稳定的漂亮国ip,还要冒着被封号的风险。 因此,本文介绍了两个白嫖ChatGPT的方式供大家使用(亲测可用): Poe 地址(科学上网)…

入行IC|数字IC与模拟IC方向怎么选?(内附2023春招薪资对比)

很多同学想要入行IC,但不知道数字和模拟方向怎么选? 如果没有亲身体会过模拟设计,并有发自内心的自信或者兴趣,一般不看好纯小白去学模拟电路设计。 模拟设计想做好,没有数学功底,没有电路分析的功底&…

C++Primer第20章 iostream库

第20章 iostream库 C中的IO流是通过多继承和虚拟继承实现的,下面是它的关系. 我们要学习的就是三个库,这里我会把重点的拿出来 iostream: 终端操作fstream:文件操作sstream:格式化操作 20.1 输出操作符<< 输出操作符可以接受任何内置数据类型的实参,包含我们的const …

HTTP第六讲——键入网址再按下回车,后面究竟发生了什么?

使用 IP 地址访问 Web 服务器 首先我们运行 www 目录下的“start”批处理程序&#xff0c;启动本机的 OpenResty 服务器&#xff0c;启动后可以用“list”批处理确认服务是否正常运行。 然后我们打开 Wireshark&#xff0c;选择“HTTP TCP port(80)”过滤器&#xff0c;再鼠标…

接口自动化测试神器:Python+Requests+Unittest让你的测试用例飞起来

B站首推&#xff01;2023最详细自动化测试合集&#xff0c;小白皆可掌握&#xff0c;让测试变得简单、快捷、可靠 随着互联网的发展&#xff0c;越来越多的应用程序采用了分布式架构&#xff0c;并通过API接口进行数据交换。因此&#xff0c;接口自动化测试已经成为了保证软件质…

git简介和使用、基础命令

文章目录 一、git的安装与配置二、Git工作区原理三、Git的使用和仓库的创建四、Git的常用操作五、配置公钥六、IDEA中配置Git 一、git的安装与配置 https://tortoisegit.org/ 下载对应版本安装即可 注意&#xff1a;配置中输入邮箱和密码一定要和自己的git账户一致 git的配置…

Seqkit-2.2.0 移植指南(openEuler 20.03 LTS SP3)

1.软件介绍 seqkit是一种跨平台的、极快的&#xff0c;全面的fasta/q处理工具。seqkit为所有的主流操作系统提供了一种可执行的双元文件&#xff0c;包括Windows&#xff0c;Linux&#xff0c;MacOS X&#xff0c;并且不依赖于任何的配置或预先配置就可以直接使用。 关于seqk…

C++类与对象—中

我们本期继续来学习C的类与对象&#xff0c;没有看过往期的同学建议先看看之前的 (11条消息) C类与对象—上_KLZUQ的博客-CSDN博客 目录 类的6个默认成员函数 构造函数 析构函数 拷贝构造函数 运算符重载 赋值运算符重载 日期类的实现 const成员 取地址及const取地址操作…

RabbitMQ启动失败的一系列尝试

一. 背景 在三台 CentOS 7.x上部署了RabbitMQ集群&#xff0c;如下&#xff1a; 服务器IPhostname节点说明端口管控台地址192.168.31.101masterrabbitmq master5672http://192.168.11.71:15672192.168.31.102slave1rabbitmq slave5672http://192.168.11.72:15672192.168.31.10…

centos7 安装 oceanbase 单机版测试

1&#xff1a; 说明 虚拟机&#xff1a;4核8G&#xff0c; 60G硬盘要求。 用的是社区版 官网地址&#xff1a; https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001692850 下载地址&#xff1a; https://www.oceanbase.com/softwarecenter 2&#…

基于Linux系统在线安装RabbitMQ

一、前言 二、Erlang下载安装 三、RabbitMQ下载安装 三、RabbitMQ Web界面管理 一、前言 本次安装使用的操作系统是Linux centOS7。 二、Erlang下载安装 在确定了RabbitMQ版本号后&#xff0c;先下载安装Erlang环境。下面演示操作过程&#xff1a; Erlang下载链接&#…

JDBC基础

1、JDBC概述 在开发中使用的是java语言&#xff0c;那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。 1.1 JDBC概念 JDBC 就是使用Java语言操作关系型数据库的一套API 全称&#xff1a;( Java DataBase Connectivity ) Java 数据库连接 我们开发的同一…

【Linux】7. 环境变量

1. 环境变量的引入 先描述一个现象&#xff0c;我们在执行二进制可执行程序的时候&#xff0c;是需要找到其所在位置的(程序要运行必须先加载到内存&#xff0c;是因为冯诺依曼体系结构规定CPU只能从内存中读取数据)&#xff0c;所以这也就是为什么我们在运行前带上./的原因&a…

java http get post 和 发送json数据请求

浏览器请求效果 HttpUtils 工具类 package com.bysen.common.utils.http;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ConnectException; impo…

一次业务系统无法使用对应的oracle数据库性能分析过程

一、问题概述 自助机系统及其它HIS等相关业务程序从3日早上8:20分左右出现使用异常&#xff0c;通过关闭自助机应用服务器及现场工程师KILL相关锁进程后正常。后续数据库工程师通过远程方式接入数据库环境进行问题排查&#xff0c;通过对相关日志等信息的深入分析&#xff0c;…

教育单位启动网络安全排查,查询IP地址能做什么?

近日&#xff0c;南京教育局主办了一场“网安2023”教育行动&#xff0c;各级教育单位都将开始教育系统网络安全责任制&#xff0c;做实各项教育网络安全工作&#xff0c;提升教育系统网络安全防护能力。 本次行动采取远程安全检查与现场检查相结合方式对各级教育单位进行网络…

Java爬取壁纸图片

Java爬取壁纸图片 前言依赖爬取图片工具类 -- WallHavenDownloadToDir.java 测试 前言 自己写了一个项目 想加一个功能&#xff1a;自动爬取壁纸发送给用户。说干就干&#xff0c;Python能干的&#xff0c;Java也能干&#xff01; 参考文章&#xff1a; jsoup的使用 Java爬虫…