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

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

作者头像
冬天vs不冷
发布2025-01-21 10:02:28
发布2025-01-21 10:02:28
12500
代码可运行
举报
文章被收录于专栏: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
复制
# 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
复制
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
复制
nohup sh bin/mqnamesrv > logs/namesrv.log &
  • 启动broker 这里的-c是指定使用的配置文件
代码语言:javascript
代码运行次数:0
复制
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
复制
mvn clean package -Dmaven.test.skip=true
  • 打包完后会新生成一个文件夹target,获取可执行jar
  • 将jar包复制到mq的安装目录下,指定namesrv地址、端口、日志位置
  • 启动控制面板
代码语言:javascript
代码运行次数:0
复制
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、RocketMQ简介
  • 二、各个MQ产品的比较
  • 三、RocketMQ重要概念
    • 1、基本概念
    • 2、消息从发送到被消费的的流程
    • 3、生产和消费理解
  • 四、RocketMQ安装
    • 1、下载RocketMQ
    • 2、解压并配置环境变量
    • 3、修改nameServer的运行脚本-runserver.sh
    • 4、修改broker的运行脚本-runbroker.sh
    • 5、修改broker的配置文件
    • 6、启动nameSrv和broker
    • 7、Dashboard客户端控制台
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档