RocketMQ 是一款由阿里巴巴开源的分布式消息中间件,具有高可靠、高性能、高可扩展性等特点,在众多企业级应用中得到了广泛的应用。以下是对 RocketMQ 的详细介绍:
 
国内三大IT巨头阿里、华为、腾讯出品必是精品

核心概念

  • 消息(Message):RocketMQ 中数据的基本单元,包含消息体、消息属性等信息。消息体是实际需要传输的数据,而消息属性可以用于对消息进行分类、过滤等操作。
  • 主题(Topic):消息的逻辑分类,用于区分不同类型的消息。生产者将消息发送到特定的主题,消费者则从感兴趣的主题中获取消息。
  • 队列(Queue):主题的物理分区,一个主题可以包含多个队列。队列用于实现消息的负载均衡和并行消费,提高消息处理的效率。
  • 生产者(Producer):负责创建并发送消息到 RocketMQ 服务器的应用程序。生产者可以根据业务需求选择不同的发送方式,如同步发送、异步发送和单向发送。
  • 消费者(Consumer):从 RocketMQ 服务器获取消息并进行处理的应用程序。消费者可以分为推模式和拉模式,推模式下,RocketMQ 主动将消息推送给消费者;拉模式下,消费者主动从服务器拉取消息。

特点

  • 高吞吐量:RocketMQ 采用了多种优化技术,如内存映射文件、零拷贝等,能够支持高并发的消息发送和接收,实现每秒数十万级的消息吞吐量。
  • 高可靠性:支持消息的持久化,将消息存储在磁盘上,以防止消息丢失。同时,RocketMQ 具有多副本机制,通过主从复制保证数据的可靠性和高可用性。
  • 分布式架构:RocketMQ 采用分布式的架构设计,能够轻松实现集群部署,支持水平扩展,以应对不断增长的业务流量。
  • 灵活的消息模型:支持多种消息模型,包括发布 / 订阅模型、点对点模型等,满足不同业务场景的需求。
  • 丰富的功能特性:提供了消息过滤、事务消息、顺序消息、定时消息等丰富的功能特性,方便开发者根据具体业务场景进行选择和使用。

安装环境:

环境:centos7.6  JDK 1.8+

1、压缩包解压
压缩包rocketmq-all-5.3.1-bin-release.zip放到/opt/RocketMQ

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

 安装包获取方式:
(1)老虎网盘资源:http://resources.kittytiger.cn/
(2)搜索:RocketMq安装包
2、 启动NameServer
cd /opt/RocketMQ/rocketmq-all-5.3.1-bin-release/bin

# nohup sh mqnamesrv &
 
### 验证namesrv是否启动成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

注:日志地址/root/logs/rocketmqlogs/namesrv.log

3、启动Broker+Proxy
NameServer成功启动后,我们启动Broker和Proxy。这里我们使用 Local 模式部署,即 Broker 和 Proxy 同进程部署

### 先启动broker
cd /opt/RocketMQ/rocketmq-all-5.3.1-bin-release
 nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &
 
 指定配置文件启动,要在conf下有acl文件夹,acl文件夹下要有acl.yml文件
 nohup sh bin/mqbroker -n localhost:9876 --enable-proxy -c /opt/RocketMQ/rocketmq-all-5.3.1-bin-release/conf/broker.conf &
 
默认的配置文件:/opt/RocketMQ/rocketmq-all-5.3.1-bin-release/conf/broker.conf  

### 验证broker是否启动成功,  
 tail -f ~/logs/rocketmqlogs/proxy.log
2025-03-24 11:46:32 INFO main - The broker[broker-a, 192.168.0.100:10911] boot success. serializeType=JSON and name server is localhost:9876
2025-03-24 11:46:32 INFO main - user specified name server address: localhost:9876
2025-03-24 11:46:32 INFO main - grpc server start successfully.
2025-03-24 11:46:32 INFO main - Mon Mar 24 11:46:32 CST 2025 rocketmq-proxy startup successfully

注:端口占用 lsof -i :10911

4、工具测试消息收发
在进行工具测试消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR
# export NAMESRV_ADDR=localhost:9876
# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...
 
 
5、关闭服务器

完成实验后,我们可以通过以下方式关闭服务
 
# sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker with proxy enable OK(36695)

# sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

--操作
--topic
cd  /opt/RocketMQ/rocketmq-all-5.3.1-bin-release/bin
--建立一个TestTopic的topic
[root@minio2 bin]# sh mqadmin updateTopic -n 192.168.0.100:9876 -t TestTopic -c DefaultCluster -a +message.type=NORMAL
create topic to 192.168.0.100:10911 success.
TopicConfig [topicName=TestTopic, readQueueNums=8, writeQueueNums=8, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false, attributes={+message.type=NORMAL}]

查看topic列表
sh mqadmin topicList -n 192.168.0.100:9876

国产化-消息队列RocketMq(替代kafka)-单节点安装的更多相关文章

  1. 分布式消息队列RocketMQ与Kafka架构上的巨大差异

    分布式消息服务 Kafka 是一个高吞吐.高可用的消息中间件服务,适用于构建实时数据管道.流式数据处理.第三方解耦.流量削峰去谷等场景,具有大规模.高可靠.高并发访问.可扩展且完全托管的特点,是分布式 ...

  2. 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?

    我们知道,在早期的RocketMQ版本中,是有依赖ZK的.而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv. 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常 ...

  3. 分布式消息队列RocketMQ(一)安装与启动

    分布式消息队列RocketMQ 一.RocketMQ简介 RocketMQ(火箭MQ) 出自于阿里,后开源给apache成为apache的顶级开源项目之一,顶住了淘宝10年的 双11压力 是电商产品的 ...

  4. 基于消息队列 RocketMQ 的大型分布式应用上云最佳实践

    作者|绍舒 审核&校对:岁月.佳佳 编辑&排版:雯燕 前言 消息队列是分布式互联网架构的重要基础设施,在以下场景都有着重要的应用: 应用解耦 削峰填谷 异步通知 分布式事务 大数据处理 ...

  5. Kafka 单节点多Kafka Broker集群

    Kafka 单节点多Kafka Broker集群 接前一篇文章,今天搭建一下单节点多Kafka Broker集群环境. 配置与启动服务 由于是在一个节点上启动多个 Kafka Broker实例,所以我 ...

  6. 主流消息队列rocketMq,rabbitMq比对使用

    首先整理这个文章是因为我正好有机会实战了一下rocketmq,阿里巴巴的一个开源消息中间件.所以就与以往中rabbitmq进行小小的比较一下.这里主线的根据常见面试问题进行整理. 一.消息队列常用的场 ...

  7. vertica单节点安装教程

    [准备] 1.CentOS 7.6的镜像盘(下载地址:官网) 2.vertica-9.1.0-0.x86_64.RHEL6(下载地址:https://pan.baidu.com/s/1IjWBUTku ...

  8. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装

     Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...

  9. hbase伪分布式安装(单节点安装)

    hbase伪分布式安装(单节点安装) http://hbase.apache.org/book.html#quickstart   1.    前提配置好java,环境java变量     上传jdk ...

  10. 二、hdfs单节点安装

    一.准备环境 在配置hdfs之前,我们需要先安装好hadoop的配置,本文主要讲述hdfs单节点的安装配置. hadoop的单节点安装配置请参考:https://www.cnblogs.com/lay ...

随机推荐

  1. 如何修改JSONObject 的值

    问 题 { "result": { "total": "3", "shops": [ { "shopId&qu ...

  2. mysql连接出现java.sql.sql exception:服务器时区值'''_''''无法识别或表示多个时区

    在连接mysql的JDBC的url后面加上服务器的时区:serverTimezone=UTCjdbc:mysql://localhost:3306/geek?useUnicode=true&c ...

  3. 高数小技巧:和 e^x 有关的积分该怎么算?

    高数解题也需要日积月累,下面是和 \(e^{x}\) 相关的一些常用解题思路,记得收藏+关注哦,还有更多考研数学实战笔记等着你呢( ̄︶ ̄) 当前高数笔记的最新内容,可以查看: https://zhao ...

  4. DW001 - 数据仓库理论知识

    数据仓库概念 数据仓库基本架构 数据集市概念 数据湖概念 数据仓库概念 数据仓库(Data Warehouse,DW)是一个面向主题的.集成的.非易失的.反映历史变化的.用来支持企业管理决策的数据集合 ...

  5. AI与.NET技术实操系列(二):开始使用ML.NET

    引言 在当今技术飞速发展的时代,机器学习(Machine Learning, ML)已成为推动创新和变革的核心力量.从智能推荐系统到自动化决策工具,ML的应用无处不在,深刻影响着我们的生活和工作方式. ...

  6. JS数组相减

    const arr1 = [1, 2, 3] const arr2 = [1, 3] const arr3 = arr1.filter(v => !arr2.includes(v)) // [2 ...

  7. css px em rem % vw vh vm 区别

    前言 在传统项目开发中,我们只会用到 px.%.em 这几个单位长度,它们可以适用大部分项目的开发,并且拥有较好的兼容性. 而从 css3 开始,浏览器对逻辑单位的支持又提升了新的境界,增加了 rem ...

  8. 容器引擎-Docker

    Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级.可移植的.自给自足的容器.Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响. ...

  9. CompletableFuture你真的懂了么,我劝你在项目中慎用

    1. 前言 在实际做项目中,我们经常使用多线程.异步的来帮我们做一些事情. 比如用户抽取奖品,异步的给他发一个push. 又比如一段前后不相关的业务逻辑,原本是顺序执行,耗时=(A + B + C), ...

  10. 深入理解Hadoop读书笔记-1

    背景 公司的物流业务系统目前实现了使用storm集群进行过门事件的实时计算处理,但是还有一个需求,我们需要存储每个标签上传的每条明细数据,然后进行定期的标签报表统计,这个是目前的实时计算框架无法满足的 ...