rocketMQ详解(linux版)

1.MQ简介

2.环境搭建(安装/启动/测试/关闭...)

1.MQ简介

1.1何为mq,为何要使用mq

MQ(Message Queue)即消息队列,我们知道队列是基础数据结构中“先进先出”的一种数据结构。消息队列一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。

解耦:减少系统关联性,mq作为中间件接受消息并等待消费,例如有两个系统,系统B需要用到系统A发送的数据,可以使用MQ作为中间件,A将消息发送给消息队列,B从消息队列取消息,避免AB之间直接接触耦合死(如果某天B不要A的数据咱是不是得删代码,容易秃头)

异步:消息发送和消息消费可以不同时进行,两个系统无直接关联

流量削峰:某一时间段流量访问过大时如果没有中间件,数据大量涌入并入库,系统承受不住噶了,mq作用能缓解该情况,当访问过大,可将请求缓存到mq,消费方再逐步从mq缓存中拉取请求让系统平稳运行。


1.2缺点

可用性降低:要使用mq就得引入,不能凭空捏造,依赖引入过多稳定性必然降低

复杂度提高:引入mq虽然解决了大部分头疼的问题(耦合,异步等),但是较同步调用相比,可能存在消息丢失,消息发送重复,消息传递顺序性无法保证

一致性问题:假如A系统要发送消息给B,C,D三个系统,当B,C两系统取到消息并处理成功但是D系统失败了,一致性问题就无法保证

可用性问题:mq如果噶了,可用性也会降低

1.3rocketMQ

RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。RocketMQ既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。

2.环境搭建(安装/启动/测试/关闭...)

2.1下载

百度网盘(包含jdk,rocketmq)--》链接

或者关注上篇博客

2.2linux jdk环境

详见博客--》linux安装jdk_小姚zhua你一大窝jio的博客-CSDN博客

2.3安装rocketmq

下载好复制到虚拟机

我是新建了一个tools文件夹保存,

然后通过unzip  rocketmq-all-4.9.2-bin-release.zip 解压 得到一个蓝色同名文件夹 我名字改成了rockertmq 

看下结构

benchmark:放了一些demo可直接运行

bin:里边就是可执行文件 我们主要用到的也是这个

conf:配置文件

lib:依赖的第三方jar包放在这里边

2.4启动rocketmq

启动前先修改bin下配置文件,默认内存有点大容易启动不起来

runbroker.sh

runserver.sh

默认可能时4G或8G改小一点

 

我的虚拟机内存才1G可根据自己内存大小调整

  

两边改好 即可

2.4.1启动NameServer

进入bin目录

 输入命令 

如果当前在bin目录执行  nohup sh mqnamesrv &  (后台启动)

在bin上一层目录执行   nohup sh bin/mqnamesrv &  (后台启动)

jps 命令确认是否启动

 

2.4.2启动Broker

也是在该目录下

nohup sh mqbroker -n localhost:9876 & (先启动nameserver 再启动这个 默认端口9876)

 jps查看

现在两边都启动好了 

2.4.3 关闭

关闭命令 sh mqshutdown namesrv 

sh mqshutdown broker

 

2.4.4测试消息发送与接收

默认两服务已开启,开启两个dos 且都进入到bin目录 

第一个窗口

配置临时环境变量

export NAMESRV_LINSHI=localhost:9876

使用安装包的demo发送消息

sh tools.sh org.apache.rocketmq.example.quickstart.Producer

第二个窗口

export NAMESRV_LINSHI=localhost:9876

sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux部署RocketMQ的步骤如下: 1. 下载RocketMQ的安装包,解压到指定目录。 2. 修改RocketMQ的配置文件,包括broker.conf、namesrv.conf等。 3. 启动NameServer,执行命令:sh bin/mqnamesrv。 4. 启动Broker,执行命令:sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true。 5. 验证RocketMQ是否正常运行,可以通过执行命令:sh bin/mqadmin clusterList -n localhost:9876,查看NameServer和Broker的状态。 6. 在应用程序中使用RocketMQ,需要引入相关的依赖包,并编写相应的代码。 以上就是Linux部署RocketMQ的基本步骤,需要注意的是,在实际部署过程中可能会遇到一些问题,需要根据具体情况进行调整和解决。 ### 回答2: RocketMQ是一种高可用性、高性能的开源消息中间件,在大数据领域和互联网架构中广泛使用。在Linux系统下,部署RocketMQ可以提供更稳定的服务,下面是针对Linux系统下的RocketMQ部署步骤。 1. 下载与安装Java环境 RocketMQ是基于Java语言开发的,需要Java环境的支持,可以通过在Linux中下载安装Java环境来实现: ``` 1. apt-get update 2. apt-get install openjdk-8-jdk 3. java –version ``` 2. 下载RocketMQ安装包 可以通过阿里云官网下载RocketMQ独立本的压缩包,将其解压缩至目标目录,例如 /usr/local/rocketmq/。下载RocketMQ可以在以下网址中获取:https://mirrors.aliyun.com/apache/rocketmq/ 3. 配置环境变量 在Linux系统下可以通过配置环境变量的方式来快速访问到RocketMQ相关的命令: ``` 1. vim /etc/profile 2. export ROCKETMQ_HOME=/usr/local/rocketmq 3. export PATH=$PATH:$ROCKETMQ_HOME/bin 4. source /etc/profile ``` 4. 启动name server 在RocketMQ中,Name Server是消息的服务路由中心,是RocketMQ集群必不可少的组件。开启Name Server可以通过以下方式来实现: ``` 1. cd $ROCKETMQ_HOME/bin 2. ./mqnamesrv & ``` 5. 启动Broker Broker是RocketMQ集群中存储和消费消息的节点,通过启动Broker来实现消息的生产和消费。启动Broker可以通过以下方式来实现: ``` 1. cd $ROCKETMQ_HOME/bin 2. ./mqbroker -n localhost:9876 & ``` 6. RocketMQ使用 启动Name Server和Broker之后,即可通过RocketMQ提供的命令操作RocketMQ,实现消息的生产和消费: ``` 1. 生产消息:sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer 2. 消费消息:sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ``` 总体来说,在Linux系统下部署RocketMQ,需要进行几个步骤,包括Java环境的安装,RocketMQ安装包的下载,环境变量的配置,Name Server的启动,Broker的启动等。按照以上步骤进行部署,便能很愉快地在Linux下使用RocketMQ了。 ### 回答3: RocketMQ是一个开源的分布式消息中间件系统,它被广泛用于处理大数据和高并发的消息传递场景。本文将详细介绍如何在Linux上部署RocketMQ。 1. 环境准备 在部署RocketMQ之前,需要确保Linux系统已安装Java虚拟机(JVM)。可以通过以下命令检查: ``` java -version ``` 如果未安装,可以通过以下命令安装Java: ``` yum install java-1.8.0-openjdk ``` 同时,还需要安装RocketMQ的二进制文件。可以从RocketMQ的官方网站下载最新本的二进制文件。下载后,可以使用以下命令解压: ``` tar -zxvf rocketmq-all-version.tar.gz ``` 2. 配置文件修改 解压后,需要修改一些配置文件以适应特定的环境。需要修改以下配置文件: **broker.conf** 在配置文件中,需要指定以下主要参数: - brokerIP:指定该broker服务器的IP地址。 - brokerName:指定该broker服务器的名称。 - brokerClusterName:指定该broker所在的集群名称。 - listenPort:指定broker监听的端口号。 可以通过以下命令修改config/broker.conf文件: ``` vi config/broker.conf ``` 修改完配置文件后,保存并退出。 **nameserver.conf** 在配置文件中,需要指定以下主要参数: - namesrvAddr:指定nameserver的IP地址和端口号。 可以通过以下命令修改config/nameserver.conf文件: ``` vi config/nameserver.conf ``` 修改完配置文件后,保存并退出。 3. 启动服务 启动RocketMQ需要以不同的角色分别启动nameserver和broker服务。可以通过以下命令启动nameserver: ``` nohup sh bin/mqnamesrv & ``` 可以通过以下命令启动broker: ``` nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true & ``` 启动后,可以通过以下命令查看RocketMQ的进程: ``` ps aux | grep RocketMQ ``` 4. 测试 启动服务后,可以通过以下命令创建一个新主题: ``` sh bin/mqadmin updateTopic -c DefaultCluster -n localhost:9876 -t testTopic ``` 然后,可以通过发送消息测试: ``` sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer testTopic ``` 可以通过消耗消息测试: ``` sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer testTopic ``` 以上就是Linux上部署RocketMQ的详细过程。RocketMQ是一个非常强大的分布式消息中间件系统,它可以快速处理大量数据。因此,适当地配置和使用RocketMQ可以为企业带来很多好处,例如提高系统的可靠性、提高系统的性能和可扩展性等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值