RocketMQ(一)应用背景及安装

应用背景

一般上从各个学习平台介绍的RocketMQ消息中间件应用场景
  一、应用解耦,提高容错性。总不可避免的发生些,硬件故障,应用重启,服务器宕机等等,致使数据无法被及时消费。
  二、数据流量削峰,大抵多数的应用是碰不到传统意义上的流量顶峰。但一般上多数用户对应怎你服务器的性能。何况还有那么多的恶意请求。为了避免阻止正常用户的请求,降低用户体验,可以用消息队列暂存消息。
  三、数据分发,在分布式系统中,各个应用相互请求,相互调用会增大服务器的压力,如果通过消息中间件,一个应用产生的数据直接发送到MQ,无需理会那个应用去使用这个消息。
  现阶段的接触过的业务应用,主要是把MQ当做辅助手段,当HTTP请求失败或者未获得响应时,将数据发送到MQ中,遵循的是第一个应用场景。但为了避免数据被重复消费,做了大量的幂等性判断,增加了代码的复杂性。

RocketMQ各个角色介绍

这边先简单介绍下各个角色,详细的说明,会在安装,配置,代码块中备注。

  • Producer : 生产者(消息发送者);
  • Consumer : 消费者(消息接收者);
  • Broker : 负责暂存消息;(类似于邮局);
  • NameServer :管理Broker;(类似于邮政部门,各个邮局的管理机构);
  • Topic : 生产者Producer和消费者Consumer都是通过Topic找到具体某大类进 行消息的投递和消费,Producer可以发送消息给一个或多个Topic。Consumer可以订阅一个或多个Topic消息;
  • Message Queue : 相当于Topic的分区,用于并行发送和接收消息;

Linux上RocketMQ的下载及安装

一,需要的环境
Java环境,RocketMQ是由java开发的,这边服务器上安装的是JDK1.8
Maven环境,RocketMQ下载下来以后需要Maven的编译
二,在Linux上下载RocketMQ及安装

//根目录下创建临时目录下载RocketMQ
mkdir download
//进入download文件夹
cd /download
//下载RocketMQ,这边下载的是4.7版本
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.7.0.tar.gz
//将下载好的RocketMQ解压到/usr/local目录下
tar -zxvf rocketmq-all-4.7.0.tar.gz -C /usr/local
//进入到rocketmq-rocketmq-all-4.7.0文件
cd /usr/local/rocketmq-rocketmq-all-4.7.0
//通过mvn命令 开始编译rocketmq
mvn -Prelease-all -DskipTests clean install -U
//进入/usr/local目录创建rocketmq文件夹
cd /usr/local
mkdir rocketmq
//进入到
cd /usr/local/rocketmq-rocketmq-all-4.7.0/distribution/target/rocketmq-4.7.0/
//将整个rocketmq-4.7.0复制到rocketmq文件夹中,所以下载的时候不要把源码拉下来,下载zip包就行了,多麻烦
cp -r rocketmq-4.7.0 /usr/local/rocketmq
//usr/local下的 rocketmq-rocketmq-all-4.7.0可以删除了

编译结束以后,可以对rocketmq进行环境变量配置

vim /etc/profile
//注意编译后的路径
export ROCKETMQ=/usr/local/rocketmq/rocketmq-4.7.0
export PATH=$PATH:$ROCKETMQ/bin
//退出保存
:wq
//刷新下配置
source /etc/profile
//进入到/usr/local/rocketmq/rocketmq-4.7.0/bin目录下修改runserver.sh和runbroker.sh的
//runserver.sh配置理解找到,根据自己服务器资源修改值
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改后:JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
//runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
修改后:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
//创建logs文件夹
mkdir /usr/local/rocketmq/rocketmq-4.7.0/logs
//先启动nameserver 并指定日志输出到指定位置
nohup sh mqnamesrv >/usr/local/rocketmq/rocketmq-4.7.0/logs/mqnamesrv.log 2>&1 &
 
//启动rroker 并指定日志输出到指定位置
nohup sh mqbroker -n localhost:9876 >/usr/local/rocketmq/rocketmq-4.7.0/logs/broker.log 2>&1 &

查看日志或者通过jps命令查看是否
在这里插入图片描述
测试:打开两个窗口分别在/usr/local/rocketmq/rocketmq-4.7.0/bin目录下

//设置临时的环境变量 当然你也可以配置到etc/profile中
export NAMESRV_ADDR=127.0.0.1:9876
//生产消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

//另一个窗口 一样设置临时的环境变量 
export NAMESRV_ADDR=127.0.0.1:9876
//消费消息
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
//在bin目录下执行以下命令,先关闭broker,在关闭nameserver
sh mqshutdown broker
sh mqshutdown namesrv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值