前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >RocketMQ(一):基本概念和环境搭建

RocketMQ(一):基本概念和环境搭建

作者头像
冬天vs不冷
发布于 2025-01-21 02:02:28
发布于 2025-01-21 02:02:28
15900
代码可运行
举报
文章被收录于专栏:springbootspringboot
运行总次数:0
代码可运行

RocketMQ系列文章

RocketMQ(一):基本概念和环境搭建

一、RocketMQ简介

  • RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发
  • RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
  • 官网: http://rocketmq.apache.org

为什么要使用MQ?

  • 削峰限流:设置流程缓冲池,可以让后端系统按自身吞吐能力进行消费,不被冲垮
  • 异步:消息发送者可以发送一个消息而无需等待响应
  • 解耦:发送者和接收者不必了解对方,只需要确认消息,不必同时在线

MQ的执行流程

  • 发送者把消息发给消息服务器[MQ]
  • 消息服务器把消息存放在若干队列/主题中,在合适的时候,消息服务器会把消息转发给接受者
  • 在这个过程中,发送和接受是异步
  • 发送者可以和接受者一对一(互发微信),也可以一对多(微信订阅号)

二、各个MQ产品的比较

特性

ActiveMQ

RabbitMQ

RocketMQ

Kafka

开发语言

java

erlang

java

scala

吞吐量

万级

万级

十万级

十万级

延迟性

ms级

us级

ms级

ms级以内

功能特性

性能一般 出现早 功能单一 吞吐量低

性能好 管理界面丰富功能丰富 吞吐量一般

性能好 功能最丰富 吞吐量高

吞吐量最大 功能单一应用大数据领域

三、RocketMQ重要概念

1、基本概念

  • Producer:消息的发送者,生产者;举例:发件人
  • Consumer:消息接收者,消费者;举例:收件人
  • Broker:暂存和传输消息的通道;举例:快递
  • NameServer:管理Broker;举例:各个快递公司的管理机构 相当于broker的注册中心
  • Queue:队列,消息存放的位置,一个Broker中可以有多个队列
  • Topic:主题,消息的分类
  • ProducerGroup:生产者组
  • ConsumerGroup:消费者组,多个消费者组可以同时消费一个主题的消息

2、消息从发送到被消费的的流程

  • Producer询问NameServer
  • NameServer分配一个broker 然后Consumer也要询问NameServer
  • 得到一个具体的broker,然后消费消息

3、生产和消费理解

  • 消息会被投递(或者消费者主动拉去)给每一个消费者组
  • 在每一个组内是进行负裁均衡还是广播模式,是看这个消费者组的配置

四、RocketMQ安装

1、下载RocketMQ

下载地址:https://rocketmq.apache.org/dowloading/releases/

  • RecketMQ服务端
  • RecketMQ客户端

2、解压并配置环境变量

环境变量设置NameServer的ip地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# RocketMQ
export NAMESRV_ADDR=localhost:9876

3、修改nameServer的运行脚本-runserver.sh

进入bin目录下,修改runserver.sh文件,将71行和76行的Xms和Xmx等改小一点

4、修改broker的运行脚本-runbroker.sh

进入bin目录下,修改runbroker.sh文件,修改67行

5、修改broker的配置文件

进入conf目录下,修改broker.conf文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

# 添加配置
namesrvAddr=localhost:9876
autoCreateTopicEnable=true
brokerIP1=localhost
  • namesrvAddr:可以写localhost因为nameSrv和broker在一个服务器
  • autoCreateTopicEnable:自动创建主题,不然需要手动创建出来
  • brokerIP1:broker的ip地址

6、启动nameSrv和broker

  • 首先在安装目录下创建一个logs文件夹,用于存放日志
  • 启动nameSrv
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup sh bin/mqnamesrv > logs/namesrv.log &
  • 启动broker 这里的-c是指定使用的配置文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup sh bin/mqbroker -c conf/broker.conf > logs/broker.log &
  • 查看结果

7、Dashboard客户端控制台

  • 第一步中下载客户端是rocketmq-dashboard-1.0.0压缩包
  • 在rocketmq-dashboard-1.0.0\src\main\resources下的文件application.properties中进行配置的修改
  • 在rocketmq-dashboard-1.0.0\pom.xml这个文件所在的目录下执行Maven打包命令
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mvn clean package -Dmaven.test.skip=true
  • 打包完后会新生成一个文件夹target,获取可执行jar
  • 将jar包复制到mq的安装目录下,指定namesrv地址、端口、日志位置
  • 启动控制面板
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup java -jar rocketmq-dashboard-1.0.0.jar --server.port=9999 rocketmq.config.namesrvAddr=127.0.0.1:9876 > logs/dashboard.log &
  • 浏览器访问http://localhost:9999/
  • 杀mq进程(namesrv、broker、dashboard)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java架构之路-(MQ专题)RocketMQ从入坑到集群详解
  这次我们来说说我们的RocketMQ的安装和参数配置,先来看一下我们RocketMQ的提出和应用场景吧。
小菜的不能再菜
2019/11/10
6930
Apache RocketMQ 消息队列部署与可视化界面安装
Apache RocketMQ是一个分布式、队列模型的消息中间件,具有低延迟、高性能和高可靠、万亿级容量和灵活的可扩展性。核心组件由四部分组成:Name Servers,Brokers,Producer 和 Consumer;它们中的每一个都可以水平扩展,而没有单一的故障节点。
陶陶技术笔记
2020/06/02
3.2K0
Apache RocketMQ 消息队列部署与可视化界面安装
RocketMQ的集群
刚才的演示中,我们已经体验到了RocketMQ是如何工作的。这样,我们回头看RocketMQ的集群架构,就能够有更全面的理解了。
Java廖志伟
2022/03/07
7450
RocketMQ的集群
RocketMQ 环境搭建
RocketMQ 环境搭建 一. 开发环境 操作系统:CentOS7 JDK1.8 二. 安装JDK 下载jdk-8u181-linux-x64.tar.gz包到/usr/local下 解压 tar -zxvf jdk-8u181-linux-x64.tar.gz 重命名 mv jdk1.8.0_181/ ./jdk1.8 配置Java环境变量 修改配置文件 /etc/profile vi /etc/profile 在文件末尾增加Java环境变量配置 export JAVA
张申傲
2020/09/03
8820
[分布式学习]消息队列之rocketmq笔记
mq有很多,近期买了《分布式消息中间件实践》这本书,学习关于mq的相关知识。mq大致有有4个功能:
_淡定_
2019/06/05
7330
[分布式学习]消息队列之rocketmq笔记
RocketMQ1_在Linux下的安装
一、rocketmq的安装 1.打开rocketmq官网下载 下载后上传至服务器 # 或者 使用git git clone -b develop https://github.com/apache/incubator-rocketmq.git* 2.解压/编译 # 此处上传至了 /usr/software/mq/rocketmq路径下 unzip rocketmq-all-4.8.0-source-release.zip # 进入解压后的文件夹后执行 mvn -Prelease-all -DskipT
玖柒的小窝
2021/09/09
1.3K0
RocketMQ1_在Linux下的安装
RocketMQ之——单机环境搭建
今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备。RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会单独开设一个RocketMQ专栏。这里,先简单介绍一下搭建RocketMQ的单机环境,为分布式事务的介绍做准备。接下来,进入主题。
冰河
2020/10/29
1.5K0
RocketMQ-初体验RocketMQ(02)_单节点RocketMQ的安装
假如你没有云主机也没搭建本地虚拟机,那么推荐使用VMware Workstation Player 来搭建自己的虚机,Virtual Box 也不错,这两款体积都比较小,适合个人开发。
小小工匠
2021/08/17
1.7K0
手摸手教你在腾讯云CVM搭建RocketMQ
RocketMQ是一款开源的、分布式的消息中间件系统,由阿里巴巴开发并贡献给Apache基金会,目前是Apache项目之一。它具有高可靠性、高性能、可扩展性和灵活的特点,被广泛应用于大规模分布式系统的消息通信场景
不惑
2024/06/13
1360
手摸手教你在腾讯云CVM搭建RocketMQ
Centos6下RocketMQ集群部署记录
一、RocketMQ基础知识介绍 Apache RocketMQ是阿里开源的一款高性能、高吞吐量、队列模型的消息中间件的分布式消息中间件。RocketMQ具有以下特点: 上图是一个典型的消息中间件收发
洗尽了浮华
2018/06/14
2.3K0
1、RocketMQ(安装与测试)
用户7630333
2023/12/07
4300
1、RocketMQ(安装与测试)
RocketMQ-环境搭建(单master模式-ubuntu版)
一、linux安装unzip软件 输入命令: sudo apt-get install unzip 提示:如果出现 Unable to locate package 则需要先执行命令更新: sudo apt-get update 二、添加Hosts信息 vim /etc/hosts #内网IP 172.19.129.62 rocketmq-nameserver1 172.19.129.62 rocketmq-master1 三、上传rocketmq-all-4.4.0-bin-release.zip 将压
凡人飞
2020/09/21
1.5K0
RocketMQ 和 RabbitMQ 的比较以及 RocketMQ 的使用
消息队列在项目中会经常用到,目前我们使用的是 RabbitMQ,但在 Java 技术栈下,RocketMQ 使用的比较多。下面比较下 RabbitMQ 和 RocketMQ。 RabbitMQ 和 RocketMQ 对比 1、设计理念和架构
郑子铭
2025/02/25
2950
RocketMQ 和 RabbitMQ 的比较以及 RocketMQ 的使用
5分钟不到!Docker搭建RocketMQ,史上最快教程!
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有Docker环境的情况下只需要三步即可。
java进阶架构师
2020/04/26
19.1K1
5分钟不到!Docker搭建RocketMQ,史上最快教程!
在docker下安装rocketmq【docker-compose】方式安装
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。
凯哥Java
2022/12/16
8.1K0
在docker下安装rocketmq【docker-compose】方式安装
【非docker-compose】docker下安装rocketmq
docker下按照rocketmq。非compose安装。一步一步安装 一:编写broker.conf文件 文件位置:/opt/rocketmq/conf/ 下面这个是复杂版本。 # 所属集群名字 brokerClusterName=DefaultCluster # broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a, # 在 broker-b.properties 使用: broker-b brokerName=broker-
凯哥Java
2022/12/16
5300
大厂生产环境的RocketMQ都是这样部署的
昨天我们已经学习了RocketMQ的一些基本概念,架构设计和各个角色的功能。今天我们来聊聊RocketMQ的集群部署问题,关于RocketMQ的几种集群模式,你都知道吗,或者你们用的是哪一种集群模式呢?
故里
2020/11/25
1K0
大厂生产环境的RocketMQ都是这样部署的
手把手教你搭建 RocketMQ 高可用集群!
RocketMQ是一个由阿里巴巴开源的消息中间件, 2012年开源,2017年成为apache顶级项目。RocketMQ在阿里内部应用是非常广泛的,阿里内部的几千个应用都运行在RocketMQ之上,双十一期间需要处理亿万级别的消息,TPS可以达到几十万。目前支持Java、C/C++,Python、Go四种语言访问。
民工哥
2021/03/15
8820
手把手教你搭建 RocketMQ 高可用集群!
搭建 RocketMQ 集群
单机模式, 即只有一个Broker, 如果Broker宕机了, 会导致RocketMQ服务不可用, 不推荐使用.
张乘辉
2019/11/11
9730
搭建 RocketMQ 集群
rocketmq主从模式搭建
修改nameserver和broker的启动参数,对于2c8g机器,nameserver建议1g,broker建议4g。
叔牙
2023/12/11
2770
rocketmq主从模式搭建
相关推荐
java架构之路-(MQ专题)RocketMQ从入坑到集群详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验