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

Spring源码系列文章

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


目录

  • 一、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客户端控制台

一、RocketMQ简介

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

为什么要使用MQ?

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

MQ的执行流程

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

在这里插入图片描述

二、各个MQ产品的比较

特性ActiveMQRabbitMQRocketMQKafka
开发语言javaerlangjavascala
吞吐量万级万级十万级十万级
延迟性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地址

# 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文件

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
nohup sh bin/mqnamesrv > logs/namesrv.log &
  • 启动broker 这里的-c是指定使用的配置文件
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打包命令
mvn clean package -Dmaven.test.skip=true
  • 打包完后会新生成一个文件夹target,获取可执行jar

在这里插入图片描述

  • 将jar包复制到mq的安装目录下,指定namesrv地址、端口、日志位置
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)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/174563.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordcloud出现ValueError: Only supported for TrueType fonts

方法1:换一个版本的wordcloud即可,实测windows在1.8.2.2版本上不会报错。 方法2:还可以尝试其他博客中的解决方案,自己下个字体的TTF文件,让后font_path直接写字体文件路径。(此方法未见效)

【Python 算法】双向迪杰斯特拉算法 Python实现

双向迪杰斯特拉算法Python实现 文章目录 双向迪杰斯特拉算法Python实现简介双向迪杰斯特拉算法优势局限性算法的基本步骤终止条件 基本步骤伪代码Python 实现双向迪杰斯特拉与单向迪杰斯特拉算法比较 简介 双向迪杰斯特拉算法(Bi Directional Dijkstra Algorithm&a…

解析SQL 获取表、字段及SQL查询参数

解析SQL 获取表、字段及SQL查询参数 1. 执行效果2. 使用2.1 引入依赖2.2 相关实体2.3 工具类 1. 执行效果 2. 使用 2.1 引入依赖 <!-- sql 解析处理--><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifa…

【读点论文】结构化剪枝

结构化剪枝 在一个神经网络模型中&#xff0c;通常包含卷积层、汇合层、全连接层、非线形层等基本结构&#xff0c;通过这些基本结构的堆叠&#xff0c;最终形成我们所常用的深度神经网络。 早在 1998 年&#xff0c;LeCun 等人使用少数几个基本结构组成 5 层的 LeNet-5 网络&…

docker简介和安装

0.前提 本文章意在告诉各位开发者学生有一个工具能够方便你未来的项目开发和部署&#xff0c;这也是我在给我留下一份备份&#xff0c;在我忘记的时候可以回头寻找。 1.docker简介 docker本身就有集装箱的意思。Docker: Accelerated Container Application Development Dock…

香港科技大学广州|智能制造学域机器人与自主系统学域博士招生宣讲会—中国科学技术大学专场

&#x1f3e0;地点&#xff1a;中国科学技术大学西区学生活动中心&#xff08;一楼&#xff09;报告厅 【宣讲会专场1】让制造更高效、更智能、更可持续—智能制造学域 &#x1f559;时间&#xff1a;2023年11月16日&#xff08;星期四&#xff09;18:00 报名链接&#xff1a…

算法通关村第十六关青铜挑战——原来滑动窗口如此简单!

大家好&#xff0c;我是怒码少年小码。 从本篇开始&#xff0c;我们就要开始算法的新篇章了——四大思想&#xff1a;滑动窗口、贪心、回溯、动态规划。现在&#xff0c;向我们迎面走来的是——滑动窗口思想&#xff01;&#x1f61d; 滑动窗口思想 概念 在数组双指针里&am…

Java Stream 的使用

Java Stream 的使用 开始中间操作forEach 遍历map 映射flatMap 平铺filter 过滤limit 限制sorted 排序distinct 去重 结束操作collect 收集toList、toSet 和 toMapCollectors.groupingByCollectors.collectingAndThen metch 匹配find 查询findFirst 与 findAny 的使用Optional …

基于非对称纳什谈判的多微网电能共享运行优化策略(附带MATLAB程序)

基于非对称纳什谈判的多微网电能共享运行优化策略MATLAB程序 参考文献&#xff1a; 《基于非对称纳什谈判的多微网电能共享运行优化策略》——吴锦领 资源地址&#xff1a; 基于非对称纳什谈判的多微网电能共享运行优化策略MATLAB程序 MATLAB代码&#xff1a;基于非对称纳什…

SpringBoot3数据访问

SpringBoot3数据访问 SpringBoot整合 Spring、SpringMVC、MyBatis进行数据访问开发。 整合SSM场景 整合步骤 1、创建SSM整合项目 ①数据库准备 DROP TABLE IF EXISTS t_user; CREATE TABLE t_user (id bigint NOT NULL AUTO_INCREMENT COMMENT 编号,login_name varchar(200)…

[Linux]tcpdump抓包工具

windows中的抓包工具&#xff1a;wireshark linux中的抓包工具&#xff1a;tcpdump cpdump是Linux系统中自带抓包工具 [rootIKUN ~]# rpm -q tcpdump tcpdump-4.9.0-5.el7.x86_64 [rootIKUN ~]# tcpdump tcp -i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.1…

又卷又累,救救一个将被随机拖死的程序员!

前两天在小红书上看到有人吐槽&#xff1a;“国内做程序员性价比不高&#xff0c;又卷又累&#xff0c;个人时间都被拖死了。” 现在普遍来讲&#xff0c;“卷”都是打工人的现状。 而至于国内程序员性价比不高的话&#xff0c;确实是肉少僧多。工作强度一加持&#xff0c;累自…