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. 并发编程 - 线程同步(九)之信号量Semaphore

    前面对自旋锁SpinLock进行了详细学习,今天我们将学习另一个种同步机制--信号量Semaphore. 01.信号量是什么? 在 C# 中,信号量(Semaphore)是一种用于线程同步的机制,能够 ...

  2. [JOISC 2023 Day3] Tourism 题解

    大家好,我喜欢珂朵莉树,所以我用珂朵莉树 \(AC\) 了本题. 实际上,我们比较容易发现,这题实际上就是求 \([l,r]\) 中的所有点作为关键点时,虚树所压缩的所有点(实际上就是显现出来的点+在 ...

  3. element-ui实现table表格的嵌套(table表格嵌套)功能实现

      最近在做电商类型的官网,希望实现的布局如下:有表头和表身,所以我首先想到的就是table表格组件. 表格组件中常见的就是:标题和内容一一对应:像效果图中的效果,只用基础的表格布局是不行的,因此我想 ...

  4. Redis 大 Key 分析利器:支持 TOP N、批量分析与从节点优先

    背景 Redis 大 key 分析工具主要分为两类: 1. 离线分析 基于 RDB 文件进行解析,常用工具是 redis-rdb-tools(https://github.com/sripathikr ...

  5. Zookeeper - Zookeeper启动失败,日志报错 Missing election port for server: 2

    Missing election port for server: 2 [整理日期]2023年6月1日 [基础环境]JDK 1.8.0_372.Zookeeper 3.4.5 [问题描述]进行部署分布 ...

  6. 基于ThreeJs的大屏3D地图(二)——气泡图、渐变柱体与热力图

    前提 上一篇文章中我们完成了地图区块模型的渲染,在此基础之上本篇来讲解气泡图.3D柱形图以及3D热力图的实现方式. 首先,为了更好的关注点分离及与地图渲染模块的解耦,我们可以把所有类型的可视化元素抽象 ...

  7. script 标签中 defer 和 async 的区别

    https://www.cnblogs.com/huangtq/p/18422775 在 <script> 标签中,defer 和 async 是两个用于控制 JavaScript 脚本加 ...

  8. C#使用Interlocked实现线程同步

    通过System.Threading命名空间的Interlocked类控制计数器,从而实现进程 的同步.Iterlocked类的部分方法如下表: 示例,同时开启两个线程,一个写入数据,一个读出数据 代 ...

  9. js解析json字符串、对象与json之间的转换

    前言 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键. js解析json字符串 // JSON字符串 'v ...

  10. codelite常用快捷键积累

    博客地址:https://www.cnblogs.com/zylyehuo/ 编译整个工作空间 workplace Ctrl+shift+B 编译当前文件 file Ctrl+F7 编译项目 proj ...