RocketMQ快速入门

RocketMQ快速入门

    • 准备工作
      • 下载RocketMQ
      • 环境要求
    • JDK下载安装
      • JDK下载
      • JDK安装
    • 安装RocketMQ
      • 安装步骤
      • 目录介绍
    • 启动RocketMQ
    • 测试RocketMQ
      • 发送消息
      • 接收消息
    • 关闭RocketMQ

RocketMQ是阿里巴巴2016年开源的MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如"双11"等高并发场景的消息流转,能够处理万亿级别的消息。

准备工作

下载RocketMQ

RocketMQ最新版本:5.2.0
下载地址
在这里插入图片描述

环境要求

  • Linux64位系统
  • JDK1.8(64位)
  • 源码安装需要安装Maven3.2.x

JDK下载安装

JDK下载

JDK官网下载地址:https://www.oracle.com/java/technologies/downloads/
在这里插入图片描述
注意:根据项目需要选择对应的JDK版本号,本教程以jdk-8u371-linux-x64.tar.gz进行安装说明。

JDK安装

1.解压JDK安装包

[root@master ~]# cd /home/data/mq/
[root@master mq]# tar -xvf jdk-8u371-linux-x64.tar.gz

2.配置环境变量

[root@master mq]# vi /etc/profile.d/my_env.sh

添加内容如下:

#java environment
export JAVA_HOME=/home/data/mq/jdk1.8.0_371
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

3.刷新境变量

[root@master mq]# source /etc/profile

4.检查是否安装成功

[root@master mq]# java -version

在这里插入图片描述

安装RocketMQ

安装步骤

本教程以二进制包方式安装
1.解压安装包

[root@master ~]# cd /home/data/mq/
[root@master mq]# unzip rocketmq-all-5.2.0-bin-release.zip

2.进入安装目录

[root@master mq]# cd rocketmq-all-5.2.0-bin-release/

目录介绍

  • bin:启动脚本,包括shell脚本和CMD脚本
  • conf:实例配置文件,包括broker配置文件、logback配置文件等
  • lib:依赖jar包,包括Netty、commons-lang、FastJSON等

在这里插入图片描述

启动RocketMQ

1.启动NameServer

# 1.启动NameServer
[root@master rocketmq-all-5.2.0-bin-release]# nohup sh bin/mqnamesrv &
[1] 51976
# 2.查看启动日志
[root@master rocketmq-all-5.2.0-bin-release]# tail -f ~/logs/rocketmqlogs/namesrv.log

NameServer服务启动成功日志输出如下:

2024-03-11 08:47:26 INFO main - rocketmqHome=/home/data/mq/rocketmq-all-5.2.0-bin-release
2024-03-11 08:47:26 INFO main - kvConfigPath=/root/namesrv/kvConfig.json
2024-03-11 08:47:26 INFO main - configStorePath=/root/namesrv/namesrv.properties
2024-03-11 08:47:26 INFO main - productEnvName=center
2024-03-11 08:47:26 INFO main - clusterTest=false
2024-03-11 08:47:26 INFO main - orderMessageEnable=false
2024-03-11 08:47:26 INFO main - returnOrderTopicConfigToBroker=true
2024-03-11 08:47:26 INFO main - clientRequestThreadPoolNums=8
2024-03-11 08:47:26 INFO main - defaultThreadPoolNums=16
2024-03-11 08:47:26 INFO main - clientRequestThreadPoolQueueCapacity=50000
2024-03-11 08:47:26 INFO main - defaultThreadPoolQueueCapacity=10000
2024-03-11 08:47:26 INFO main - scanNotActiveBrokerInterval=5000
2024-03-11 08:47:26 INFO main - unRegisterBrokerQueueCapacity=3000
2024-03-11 08:47:26 INFO main - supportActingMaster=false
2024-03-11 08:47:26 INFO main - enableAllTopicList=true
2024-03-11 08:47:26 INFO main - enableTopicList=true
2024-03-11 08:47:26 INFO main - notifyMinBrokerIdChanged=false
2024-03-11 08:47:26 INFO main - enableControllerInNamesrv=false
2024-03-11 08:47:26 INFO main - needWaitForService=false
2024-03-11 08:47:26 INFO main - waitSecondsForService=45
2024-03-11 08:47:26 INFO main - deleteTopicWithBrokerRegistration=false
2024-03-11 08:47:26 INFO main - configBlackList=configBlackList;configStorePath;kvConfigPath
2024-03-11 08:47:26 INFO main - bindAddress=0.0.0.0
2024-03-11 08:47:26 INFO main - listenPort=9876
2024-03-11 08:47:26 INFO main - serverWorkerThreads=8
2024-03-11 08:47:26 INFO main - serverCallbackExecutorThreads=0
2024-03-11 08:47:26 INFO main - serverSelectorThreads=3
2024-03-11 08:47:26 INFO main - serverOnewaySemaphoreValue=256
2024-03-11 08:47:26 INFO main - serverAsyncSemaphoreValue=64
2024-03-11 08:47:26 INFO main - serverChannelMaxIdleTimeSeconds=120
2024-03-11 08:47:26 INFO main - serverSocketSndBufSize=0
2024-03-11 08:47:26 INFO main - serverSocketRcvBufSize=0
2024-03-11 08:47:26 INFO main - writeBufferHighWaterMark=0
2024-03-11 08:47:26 INFO main - writeBufferLowWaterMark=0
2024-03-11 08:47:26 INFO main - serverSocketBacklog=1024
2024-03-11 08:47:26 INFO main - serverPooledByteBufAllocatorEnable=true
2024-03-11 08:47:26 INFO main - enableShutdownGracefully=false
2024-03-11 08:47:26 INFO main - shutdownWaitTimeSeconds=30
2024-03-11 08:47:26 INFO main - useEpollNativeSelector=false
2024-03-11 08:47:26 INFO main - Server is running in TLS permissive mode
2024-03-11 08:47:26 INFO main - Tls config file doesn't exist, skip it
2024-03-11 08:47:26 INFO main - Log the final used tls related configuration
2024-03-11 08:47:26 INFO main - tls.test.mode.enable = true
2024-03-11 08:47:26 INFO main - tls.server.need.client.auth = none
2024-03-11 08:47:26 INFO main - tls.server.keyPath = null
2024-03-11 08:47:26 INFO main - tls.server.keyPassword = null
2024-03-11 08:47:26 INFO main - tls.server.certPath = null
2024-03-11 08:47:26 INFO main - tls.server.authClient = false
2024-03-11 08:47:26 INFO main - tls.server.trustCertPath = null
2024-03-11 08:47:26 INFO main - tls.client.keyPath = null
2024-03-11 08:47:26 INFO main - tls.client.keyPassword = null
2024-03-11 08:47:26 INFO main - tls.client.certPath = null
2024-03-11 08:47:26 INFO main - tls.client.authServer = false
2024-03-11 08:47:26 INFO main - tls.client.trustCertPath = null
2024-03-11 08:47:27 INFO main - Using OpenSSL provider
2024-03-11 08:47:28 INFO main - SSLContext created for server
2024-03-11 08:47:28 INFO NSScanScheduledThread - start scanNotActiveBroker
2024-03-11 08:47:28 INFO main - RemotingServer started, listening 0.0.0.0:9876
2024-03-11 08:47:28 INFO main - Try to start service thread:NettyEventExecutor started:false lastThread:null
2024-03-11 08:47:28 INFO main - Start service thread:NettyEventExecutor started:true lastThread:Thread[NettyEventExecutor,5,main]
2024-03-11 08:47:28 INFO NettyEventExecutor - NettyEventExecutor service started
2024-03-11 08:47:28 INFO main - name server address updated. NEW : [10.244.0.0:9876] , OLD: null
2024-03-11 08:47:28 INFO main - Try to start service thread:NettyEventExecutor started:false lastThread:null
2024-03-11 08:47:28 INFO main - Start service thread:NettyEventExecutor started:true lastThread:Thread[NettyEventExecutor,5,main]
2024-03-11 08:47:28 INFO NettyEventExecutor - NettyEventExecutor service started
2024-03-11 08:47:28 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2024-03-11 08:47:28 INFO main - Start service thread:FileWatchService started:true lastThread:Thread[FileWatchService,5,main]
2024-03-11 08:47:28 INFO main - Try to start service thread:org.apache.rocketmq.namesrv.routeinfo.BatchUnregistrationService started:false lastThread:null
2024-03-11 08:47:28 INFO FileWatchService - FileWatchService service started
2024-03-11 08:47:28 INFO main - Start service thread:org.apache.rocketmq.namesrv.routeinfo.BatchUnregistrationService started:true lastThread:Thread[org.apache.rocketmq.namesrv.routeinfo.BatchUnregistrationService,5,main]
2024-03-11 08:47:28 INFO main - The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
2024-03-11 08:47:28 INFO NettyClientScan_thread_1 - createChannel: begin to connect remote host[10.244.0.0:9876] asynchronously
2024-03-11 08:47:28 INFO NettyClientWorkerThread_1 - NETTY CLIENT PIPELINE: CONNECT  UNKNOWN => 10.244.0.0:9876
2024-03-11 08:47:28 INFO NettyClientScan_thread_1 - createChannel: connect remote host[10.244.0.0:9876] success, AbstractBootstrap$PendingRegistrationPromise@21da008d(success)

2.启动Broker

# 1.启动Broker
[root@master rocketmq-all-5.2.0-bin-release]# nohup sh bin/mqbroker -n localhost:9876 &
# 2.查看启动日志
tail -f ~/logs/rocketmqlogs/broker.log
  • 问题描述
    RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小
# 编辑runbroker.sh 和 runserver.sh 修改默认JVM大小
[root@master ~]# cd /home/data/mq/rocketmq-all-5.2.0-bin-release/bin/
[root@master bin]# vi runbroker.sh 
[root@master bin]# vi runserver.sh

-参数设置:

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

3.查看RocketMQ的进程是否启动

[root@master rocketmq-all-5.2.0-bin-release]# jps
52864 NamesrvStartup
56411 BrokerStartup
57739 Jps

测试RocketMQ

发送消息

# 1.设置环境变量
export NAMESRV_ADDR=localhost:9876
# 2.使用安装包的Demo发送消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

在这里插入图片描述

接收消息

# 1.设置环境变量
export NAMESRV_ADDR=localhost:9876
# 2.接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

在这里插入图片描述

关闭RocketMQ

[root@master ~]# cd /home/data/mq/rocketmq-all-5.2.0-bin-release/
# 1.关闭NameServer
[root@master rocketmq-all-5.2.0-bin-release]# sh bin/mqshutdown namesrv
The mqnamesrv(52864) is running...
Send shutdown request to mqnamesrv(52864) OK
# 2.关闭Broker
[root@master rocketmq-all-5.2.0-bin-release]# sh bin/mqshutdown broker
The mqbroker(56411) is running...
Send shutdown request to mqbroker(56411) OK

在这里插入图片描述

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

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

相关文章

String、StringBuilder、StringBuffer 有什么区别?

1、典型回答 String、StringBuilder 和 StringBuffer 都是 Java 语言中,用于操作字符串的类,但它们在性能、可变性和线程安全性方面有一些区别 1、String:不可变字符串类,也就是说一旦创建,它的值就不可变。每次对 S…

数据库基础理论知识

1.基本概念 数据(Data):数据库存储的基本对象。数字、字符串、图形、图像、音频、视频等数据库(DB):在计算机内,永久存储、有组织、可共享的数据集合数据库管理系统(DBMS):管理数据库的系统软件数据库系统(DBS):DBDBMSDBADBAP 数…

【spring】-多模块构建二-问题整理

1、bean注入问题 The injection point has the following annotations: - org.springframework.beans.factory.annotation.Autowired(requiredtrue) 解决1: 由于引入的bean类 不属于启动类的子模块下,需要在启动类手动声明扫描的类 也适用于公共子模…

Ribbon-负载均衡

目录 一、负载均衡的作用位置 二、Ribbon负载均衡的工作流程 三、IRule接口 负载均衡的策略: 修改负载均衡策略(即修改使用的IRule接口的实现类): 四、饥饿加载 五、总结 前置知识:Eureka注册中心 不熟悉Eureka的…

【Emgu CV教程】9.3、形态学常用操作之开运算

文章目录 一、相关概念1.什么叫开运算3.开运算的函数 二、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫开运算 腐蚀、膨胀已经讲完,这两个是最基础的形态学操作。这次讲的是开运算,它是一个先腐蚀、后膨胀的过程。原始图像先被腐蚀&#xff…

使用Anaconda创建Python指定版本的虚拟环境

由于工作的需要和学习的需要,需要创建不同Python版本的虚拟环境。 比如zdppy的框架,主要支持的是Python3.8的版本,但是工作中FastAPI主要使用的是3.11的版本,所以本地需要两套Python环境。 决定使用Anaconda虚拟环境管理的能力&…

发那科数控机床FanucCNC(NCGuide)仿真模拟器配置和数据采集测试

开发日记3.12 此篇用于记录发那科数控机床(Fanuc CNC)采集程序开发中,用虚拟机做测试时,虚拟机的配置和使用以支持采集软件开发和测试。 配置虚拟机使用仿真软件 下载VMware15 「链接:https://pan.xunlei.com/s/VNsl9Gmb14ANBiiNlsT7vA2LA…

Chrome下载B站视频字幕的插件

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

多模态大模型Claude 3正式接入集简云与语聚!对标GPT-4且支持中文

自OpenAI发布GPT-4以来,引发了业务模式与应用使用的巨大变革,掀起了各大企业对于多模态大模型的研究热潮。3月初,AnthropicClaude在官网正式发布Claude 3系列多模态大模型,据了解,该模型在多个维度上超越了GPT-4&#…

Vcenter 定制创建 Rocky Linux 虚拟机

文章目录 1. 图形化安装2. 初始化配置 1. 图形化安装 2. 初始化配置 Centos 8.2 指南

图像分割损失函数

为什么要乘以2,是为了让DICE的值域在0和1之间 优化:两种LOSS相加 Focus loss:

C++的类和对象(六):友元、内部类

目录 友元 友元函数 友元类 内部类 匿名对象 拷贝对象时的一些编译器优化 再次理解类和对象 友元 基本概念:友元提供了一种突破封装的方式,有时提供了便利,但是友元会增加耦合度,破坏了封装,所以友元不宜多用&…

力扣--课程表--bfs+dfs

整体思路: 这是一道拓扑序列的题目,我们将边的方向定义成从先修课指向后修课的方向,借一下官方的题解图片,我们需要判断的是形成的这个图结构是否存在环,如果存在环,那么代表不能完成所有课程的学习。 bfs思…

2.Datax数据同步之Windows下,mysql和sqlserver之间的自定义sql文数据同步

目录 前言步骤操作大纲步骤明细mysql 至 sqlServersqlServer 至 mysql执行同步语句中报 前言 上一篇文章实现了不同的mysql数据库之间的数据同步,在此基础上本篇将实现mysql和sqlserver之间的自定义sql文数据同步 准备工作: JDK(1.8以上,推…

学习vue3第四节(ref以及ref相关api)

主要记录以下api:ref()、isRef()、unref()、 shallowRef()、triggerRef()、customRef() 1、ref() 定义 接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value,.value属性用于追踪并且存…

数据结构 第1章:绪论

文章目录 1. 绪论1.1. 数据结构 1.2. 算法1.2.1. 算法的基本概念1.2.2. 算法的时间复杂度1.2.3. 算法的空间复杂度 1. 绪论 程序 数据结构 算法 1.1. 数据结构 数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理…

记录一个Typora激活方法(附软件)!!!

前言 今天想体验Typora上的picList功能,手一抖给版本升级到最新的1.8.10,然后就提示我激活,让我输入序列号,如图所示。接着我就去百度找教程,于是乎就出现了这一篇文章。 教程开始 1、下载最新版 先去官网下载最新…

使用canvas绘制超炫时钟

HTML5 Canvas相当于一个画板,你可以在Canvas绘制任意的东西,今天要分享一款利用HTML5 Canvas绘制的超炫时钟的方法及代码,非常的漂亮,这里推荐给大家 代码地址 使用canvas绘制超炫时钟

R统计学2 - 数据分析入门问题21-40

往期R统计学文章: R统计学1 - 基础操作入门问题1-20 21. 如何对矩阵按行 (列) 作计算? 使用函数 apply() vec 1:20 # 转换为矩阵 mat matrix (vec , ncol4) # [,1] [,2] [,3] [,4] # [1,] 1 6 11 16 # [2,] 2 7 12 17 # [3,] …

Nodejs 第五十四章(net)

net模块是Node.js的核心模块之一,它提供了用于创建基于网络的应用程序的API。net模块主要用于创建TCP服务器和TCP客户端,以及处理网络通信。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,用于…