RocketMQ(一)--环境搭建

MQ简介

MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。

MQ用途

限流削峰
比如你的系统只能处理2000/S的请求,平时可能够用了,但是系统的请求是有高峰和低谷的,再高峰期可能有5000/S,如果不做限流削峰 系统就会崩溃.这是可以把请求的任务放MQ,由MQ存储起来,由系统慢慢处理
异步解耦
异步能够明显提升系统吞吐量,比如发送短信,发送邮件的操作都比较耗时,用户等待时间会过长。这时就可以把任务放MQ,异步处理。
还有像Mysql,Redis双写,Mysql-ES双写的场景,如果都在业务代码中处理会造成系统耦合度过高,这时就可以用canal+MQ把这部分代码剥离出来单独处理,减少业务代码的侵入性。
数据收集
MQ与大数据是天生的搭档,像业务日志,监控数据,用户行为等都可以通过MQ来同步到大数据平台。

常见MQ

常用的MQ有RabbitMQ,kafka和RocketMQ.

RabbitMQ是老牌MQ了,使用的企业还是非常多的,就是吞吐量比kafka和RocketMQ低很多,功能也不如RocketMQ强大。

kafka在大数据领域无疑是王者,如果是跟大数据平台对接首选kafka。

RocketMQ在历经多次双11的洗礼,性能稳定性都很优秀,还支持定时消息,顺序消息,事务消息等,功能强大,非常适合业务系统使用。

RocketMQ基本概念

消息(Message)

 消息是指,消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主 题。

主题(Topic)

Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行 消息订阅的基本单位。
一个生产者可以同时发送多种Topic的消息;而一个消费者只对某种特定的Topic感兴趣,即只可以订阅 和消费一种Topic的消息。
标签(Tag)
为消息设置的标签,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业 务目的在同一主题下设置不同标签。标签能够有效地保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同子主题的不同消费逻辑,实现更好的扩展性。
队列(Queue)
存储消息的物理实体。一个Topic中可以包含多个Queue,每个Queue中存放的就是该Topic的消息。一 个Topic的Queue也被称为一个Topic中消息的分区(Partition)。
一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费。一个Queue中的消息不允许同一个消费者组中的多个消费者同时消费。
消息标识(MessageId/Key)
RocketMQ中每个消息拥有唯一的MessageId,且可以携带具有业务标识的Key,以方便对消息的查询。 不过需要注意的是,MessageId有两个:在生产者send()消息时会自动生成一个MessageId(msgId), 当消息到达Broker后,Broker也会自动生成一个MessageId(offsetMsgId)。msgId、offsetMsgId与key都称为消息标识。

安装

1.下载安装包,Apache Download Mirrors

2. 上传到linux服务器并解压unzip rocketmq-all-4.9.1-bin-release.zip

3.如果内存不够,可以修改bin/runserver.sh和bin/runbroker.sh来减少内存的使用

 4.启动NameServer

nohup sh bin/mqnamesrv >/usr/local/software/rocketmq/logs/mqnamesrv.log 2>&1 &

5.启动broker

nohup sh bin/mqbroker > /usr/local/software/rocketmq/logs/broker-a.log 2>&1 &

6.使用JPS命令查看是否启动成功

 7.使用docker启动图形管理界面

docker run -d -e "JAVA_OPTS=-Drocketmq.namesrv.addr=localhost:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t apacherocketmq/rocketmq-console:2.0.0

看到以下界面说明安装成功了

要在Linux上搭建RocketMQ环境,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Java Development Kit(JDK)。你可以使用以下命令来检查是否已经安装了JDK: ``` java -version ``` 如果没有安装,请先安装JDK。 2. 下载RocketMQ压缩包。你可以从RocketMQ官方网站或者GitHub仓库上下载最新的稳定版本。 3. 解压RocketMQ压缩包。可以使用以下命令解压: ``` tar zxvf rocketmq-all-x.x.x-bin-release.zip ``` 4. 配置环境变量。打开你的`~/.bashrc`文件(或者其他适用的配置文件),并添加以下内容: ``` export ROCKETMQ_HOME=解压后的RocketMQ目录路径 export PATH=$PATH:$ROCKETMQ_HOME/bin ``` 5. 保存并关闭配置文件。然后执行以下命令以使配置生效: ``` source ~/.bashrc ``` 6. 配置RocketMQ。进入RocketMQ目录,并编辑`conf/broker.conf`和`conf/namesrv.conf`文件,根据你的需求进行配置。主要配置项包括监听IP、端口、存储路径等。 7. 启动Name Server。执行以下命令启动Name Server: ``` nohup sh bin/mqnamesrv & ``` 8. 启动Broker Server。执行以下命令启动Broker Server: ``` nohup sh bin/mqbroker -n localhost:9876 & ``` 9. 验证RocketMQ是否成功启动。你可以通过查看日志文件或者执行以下命令来验证RocketMQ是否成功启动: ``` tail -f ~/logs/rocketmqlogs/namesrv.log tail -f ~/logs/rocketmqlogs/broker.log ``` 现在,你已经成功在Linux上搭建了RocketMQ环境。你可以使用RocketMQ提供的命令行工具或者编写代码来使用RocketMQ进行消息传递。 请注意,以上步骤仅适用于Linux环境。如果你使用的是其他操作系统,请参考相应的文档进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值