RocketMQ入门到入土(一)新手也能看懂的原理和实战!(上)

简介: RocketMQ入门到入土(一)新手也能看懂的原理和实战!(上)

一、RocketMQ的安装


1、文档


官方网站



http://rocketmq.apache.org


GitHub


https://github.com/apache/rocketmq


2、下载


wget https://mirror.bit.edu.cn/apache/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip


我们是基于Centos8来的,面向官方文档学习,所以下载地址自然也是官方的。


去官方网站找合适的版本进行下载,目前我这里最新的是4.7.0版本。


http://rocketmq.apache.org/dowloading/releases/


image.png


3、准备工作


3.1、解压



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


3.2、安装jdk


sudo yum install java-1.8.0-openjdk-devel


4、启动


4.1、启动namesrv


cd rocketmq-all-4.7.0-bin-release/bin
./mqnamesrv


4.2、启动broker


cd rocketmq-all-4.7.0-bin-release/bin
./mqbroker -n localhost:9876


常见错误以及解决方案:


常见错误:启动broker失败 Cannot allocate memory


[root@node-113b bin]# ./mqbroker -n localhost:9876
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed
; error='Cannot allocate memory' (errno=12)#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/rocketmq/bin/hs_err_pid1997.log


解决方案:


是由于默认内存分配的太大了,超出了本机内存,直接OOM了。


修改bin/目录下的如下两个脚本


runbroker.sh
runserver.sh


在这两个脚本里都搜索-server -Xms,将其内存分配小点,自己玩的话512MB就足够了,够够的了!


4.3、启动成功标识


namesrv启动成功标识:


image.png


二、RocketMQ控制台的安装


控制台目前获取方式有如下两种:


  1. 第三方网站去下载现成的,比如csdn等。
  2. 官方源码包自己编译而成,官方没有现成的。


我们这里当然采取官方方式。


1、官方文档


github仓库


https://github.com/apache/rocketmq-externals


中文指南


https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md


2、下载源码

https://codeload.github.com/apache/rocketmq-externals/zip/master


3、修改配置(可选)


我们下载完解压后的文件目录如下:


image.png


修改rocketmq-console\src\main\resources\application.properties文件的server.port就欧了。默认8080。


4、编译打包


进入rocketmq-console,然后用maven进行编译打包


mvn clean package -DskipTests


打包完会在target下生成我们spring boot的jar程序,直接java -jar启动完事。


image.png


5、启动控制台


将编译打包好的springboot程序扔到服务器上,执行如下命令进行启动


java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876


如果想后台启动就nohup &


访问一下看看效果:


image.png



相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
消息中间件 存储 数据库
深入学习RocketMQ的底层存储设计原理
文章深入探讨了RocketMQ的底层存储设计原理,分析了其如何通过将数据和索引映射到内存、异步刷新磁盘以及消息内容的混合存储来实现高性能的读写操作,从而保证了RocketMQ作为一款低延迟消息队列的读写性能。
|
16天前
|
消息中间件 存储 Kafka
RocketMQ 工作原理图解,看这篇就够了!
本文详细解析了 RocketMQ 的核心架构、消息领域模型、关键特性和应用场景,帮助深入理解消息中间件的工作原理。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
RocketMQ 工作原理图解,看这篇就够了!
|
28天前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
|
2月前
|
消息中间件 Java Kafka
RabbitMQ 入门
RabbitMQ 入门
|
2月前
|
消息中间件 数据采集 中间件
RabbitMQ的使用—实战
RabbitMQ的使用—实战
|
3月前
|
消息中间件 缓存 Java
RocketMQ的JAVA落地实战
RocketMQ作为一款高性能、高可靠、高实时、分布式特点的消息中间件,其核心作用主要体现在异步处理、削峰填谷以及系统解耦三个方面。
178 0
|
4月前
|
消息中间件 存储 Java
分享一下rocketmq入门小知识
分享一下rocketmq入门小知识
52 0
分享一下rocketmq入门小知识
|
4月前
|
消息中间件 负载均衡 API
RocketMQ生产者负载均衡(轮询机制)核心原理
文章深入分析了RocketMQ生产者的负载均衡机制,特别是轮询机制的实现原理,揭示了如何通过`ThreadLocal`技术和消息队列的选播策略来确保消息在多个队列之间均衡发送,以及如何通过灵活的API支持自定义负载均衡策略。
|
4月前
|
消息中间件 存储 负载均衡
RocketMQ消费者消费消息核心原理(含长轮询机制)
这篇文章深入探讨了Apache RocketMQ消息队列中消费者消费消息的核心原理,特别是长轮询机制。文章从消费者和Broker的交互流程出发,详细分析了Push和Pull两种消费模式的内部实现,以及它们是如何通过长轮询机制来优化消息消费的效率。文章还对RocketMQ的消费者启动流程、消息拉取请求的发起、Broker端处理消息拉取请求的流程进行了深入的源码分析,并总结了RocketMQ在设计上的优点,如单一职责化和线程池的使用等。
RocketMQ消费者消费消息核心原理(含长轮询机制)
|
4月前
|
消息中间件 存储 RocketMQ
2分钟看懂RocketMQ延迟消息核心原理
本文从源码层面解析了RocketMQ延迟消息的实现原理,包括延迟消息的使用、Broker端处理机制以及定时任务对延迟消息的处理流程。
2分钟看懂RocketMQ延迟消息核心原理
下一篇
无影云桌面