linux 安装 RocketMQ

Posted 悟世君子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 安装 RocketMQ相关的知识,希望对你有一定的参考价值。

RocketMQ 因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余年的大规模场景打磨,RocketMQ 已经成为业内共识的金融级可靠业务消息首选方案,被广泛应用于互联网、大数据、移动互联网、物联网等领域的业务场景

目录

1、官网下载 RocketMQ

2、安装 RocketMQ

3、启动 RocketMQ

4、代码测试

5、RocketMQ Dashboard 安装

6、关闭 RocketMQ


1、官网下载 RocketMQ

RocketMQ 官网:https://rocketmq.apache.org/

 笔者这里选择 4.9.4版本

2、安装 RocketMQ

下载安装包后,将安装包上传到 linux

创建 RocketMQ 安装目录

mkdir -p /usr/local/rocketmq

将安装包解压到新建的安装目录

unzip -d /usr/local/rocketmq rocketmq-all-4.9.4-bin-release.zip

如果没有安装 unzip,可以执行下面命令安装

yum install -y unzip zip 

 进入 rocketmq 安装目类

cd /usr/local/rocketmq/rocketmq-all-4.9.4-bin-release

创建存放数据的目录

mkdir -p store store/commitlog store/consumequeue

进入 conf 目录

cd conf

编辑 broker.conf 文件

vi broker.conf

 在  broker.conf 文件中追加下面内容

listenPort=10911
namesrvAddr=localhost:9876
storePathRootDir=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/store
storePathCommitLog=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/store/commitlog
storePathConsumerQueue=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/store/consumequeue

修改内存大小(这步不是必须的,如果你的机器内存足够,可以跳过这步,笔者机器内存只有1g,因此需要修改内存大小)

进入 bin 目录

cd /usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/bin

编辑 runbroker.sh 文件和 runserver.sh 文件,修改内存大小

编辑 runbroker.sh 文件,将 8g 修改为 512m

vi runbroker.sh

 修改后

编辑 runserver.sh 文件

vi runserver.sh

 这里对 java 版本进行了判断,上面 2 处配置笔者都修改为 512m

开放防火墙 9876 和 10911 端口

firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent

更新防火墙规则(无需断开连接,动态添加规则)

firewall-cmd --reload

查看防火墙所有开放的端口

firewall-cmd --list-port

3、启动 RocketMQ

在 bin 目录下,执行下面命令

启动nameserver

nohup sh mqnamesrv &

启动 broker

nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/conf/broker.conf &

4、代码测试

新建 maven 项目,添加 rocketmq-client 依赖

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.9.4</version>
</dependency>

官网示例

生产者代码

将 ip 地址修改为 linux 地址,笔者这里是 192.168.0.103

package client.sample;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;

/**
 * SyncProducer
 *
 * @author wsjz
 * @date 2022/07/01
 */
public class SyncProducer 

    public static void main(String[] args) throws Exception 
        //Instantiate with a producer group name.
        DefaultMQProducer producer = new
                DefaultMQProducer("please_rename_unique_group_name");
        // Specify name server addresses.
        producer.setNamesrvAddr("192.168.0.103:9876");
        //Launch the instance.
        producer.start();
        for (int i = 0; i < 100; i++) 
            //Create a message instance, specifying topic, tag and message body.
            Message msg = new Message("TopicTest" /* Topic */,
                    "TagA" /* Tag */,
                    ("Hello RocketMQ " +
                            i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
            );
            //Call send message to deliver message to one of brokers.
            SendResult sendResult = producer.send(msg);
            System.out.printf("%s%n", sendResult);
        
        //Shut down once the producer instance is not longer in use.
        producer.shutdown();
    

消费者代码

package client.sample;

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.MessageExt;
import java.util.List;

/**
 * Consumer
 *
 * @author wsjz
 * @date 2022/07/01
 */
public class Consumer 

    public static void main(String[] args) throws InterruptedException, MQClientException 

        // Instantiate with specified consumer group name.
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");

        // Specify name server addresses.
        consumer.setNamesrvAddr("192.168.0.103:9876");

        // Subscribe one more more topics to consume.
        consumer.subscribe("TopicTest", "*");
        // Register callback to execute on arrival of messages fetched from brokers.
        consumer.registerMessageListener(new MessageListenerConcurrently() 

            @Override
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
                                                            ConsumeConcurrentlyContext context) 
                System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            
        );

        //Launch the consumer instance.
        consumer.start();

        System.out.printf("Consumer Started.%n");
    

运行效果

5、RocketMQ Dashboard 安装

RocketMQ Dashboard安装可以选择使用 docker方式也可以使用源码方式安装,笔者下面介绍源码方式安装

官方文档:https://rocketmq.apache.org/zh/docs/deploymentOperations/17Dashboard/

先在github上下载源码

RocketMQ Dashboard 源码地址:https://github.com/apache/rocketmq-dashboard

将项目克隆到本地文件夹

使用eclipse等编辑器打开项目

项目是 springboot项目,找到 application.yml 文件,修改 rocketmq 地址

笔者的地址是192.168.0.103:9876

不使用 VIP 通道,改为 false

启动项目,浏览器访问 http://localhost:8080 

如果需要的话,可以将RocketMQ Dashboard打成 jar 包,进行部署

RocketMQ Dashboard安装成功

6、关闭 RocketMQ

进入bin目录

关闭 broker

h mqshutdown broker

关闭 nameserver

sh mqshutdown namesrv

至此完

Linux 下安装 RocketMQ

RocketMQ 安装

内容

一、在 Linux 中安装 RocketMQ

1. 安装准备

1.1 软件下载

SecureSRT 下载链接:https://pan.baidu.com/s/1zE1PUoJbV-UbKud0cwpxqQ
提取码:zbbl

1.2 软件安装

由于我是在 CentOS7 上安装 RocketMQ,CentOS 我装的是没有桌面的版本,所以想要把本地文件上传到远程的 CentOS 中需要借助工具,在这里我使用的是 SecureCRT,SecureCRT安装步骤请看我这篇文章的第一个步骤:在 CentOS 中安装 JDK(二)


2. 安装 jdk 环境

  1. 把软件扔到/usr/local/software 当中

  2. tar -zxvf 软件包名 -C /usr/local
    进入压缩包所在文件夹,上面的路径是我的文件夹路径,你根据自己的实际需求来,然后把压缩包解压到 /usr/local;

  3. mv jdk1.8.0_161 jdk1.8
    文件夹名字太长,把文件夹名改成 jdk1.8,先跳转到 /usr/local,然后使用上面命令改名;

  4. vi /etc/profile
    【1】使用上面命令进入系统环境变量;
    【2】把JAVA_HOME 路径改成我们jdk1.8 路径;

  5. source /etc/profile
    重置配置文件,让配置文件生效;

  6. java -version

    查看 jdk 版本;


3. 在 Linux 中使用 RocketMQ

3.1 上传压缩文件

上传 rocketmq-all-4.4.0-bin-release.zip 到/usr/local/software

3.2 解压缩

把 /usr/local/rocketmq-all-4.4.0-bin-release.zip 文件 解压到 /usr/local

unzip /usr/local/software/rocketmq-all-4.4.0-bin-release.zip -d /usr/local

3.3 软件重命名

# 切换到 /usr/local 目录
cd /usr/local
# 重命名
mv /usr/local/rocketmq-all-4.4.0-bin-release/ /usr/local/rocketmq-4.4/

3.4 设置环境变量

export JAVA_HOME=/usr/local/jdk1.8
export ROCKETMQ_HOME=/usr/local/rocketmq-4.4
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH

3.5 修改启动参数配置

修改配置文件中的这个:JAVA_OPT="$JAVA_OPT -server -Xms1g -Xmx1g -Xmn1g",把大小都改为512m,因为我给虚拟器的内存大小为 2G,太大跑不动;
【1】vi /usr/local/rocketmq-4.4/bin/runbroker.sh

【2】vi /usr/local/rocketmq-4.4/bin/runserver.sh

3.6 修改配置文件

在 linux 中 broker.conf 配置文件最后添加 2 行配置

【1】先进入 rocket 的 conf 文件夹,命令为:cd /usr/local/rocketmq-4.4/conf/

【2】然后编辑 broker.conf 文件, 命令为:vi broker.conf

【3】添加以下 2 行命令

【4】重启服务器

reboot

【5】启动名字服务和代理服务

# 启动 mqnameser 后台运行 rocketmq,ctrl + c 退出编辑模式
nohup sh /usr/local/rocketmq-4.4/bin/mqnamesrv &

# -n localhost:9876 指定名称服务的地址, 类似于zk的地址

# 后台运行 broker.conf,ctrl + c 退出编辑模式
nohup sh /usr/local/rocketmq-4.4/bin/mqbroker -n 124.71.162.199:9876 &

# 上面命令不行就用下面,使用一个就可以了
nohup sh /usr/local/rocketmq-4.4/bin/mqbroker -n 124.71.162.199:9876 -c /usr/local/rocketmq-4.4/conf/broker.config &

【6】检验是否启动正常

  1. 使用java的内置命令: jps 可以看到BrokerStartup和NamesrvStartup进程

  2. 使用Linux命令: netstat-ntlp 可以看到9876的端口和10911的端口

​ netstat -ntlp 9876

​ netstat -ntlp 10911

  1. 查看启动日志
tail -100f ~/logs/rocketmqlogs/namesrv.log
tail -100f ~/logs/rocketmqlogs/broker.log

【7】关闭RocketMQ

  1. 关闭NameServer
sh /usr/local/rocketmq-4.4/bin/mqshutdown namesrv
  1. 关闭Broker
sh /usr/local/rocketmq-4.4/bin/mqshutdown broker

4. 搭建监控平台

  1. 在服务器wolfcode-01 创建目录

    mkdir /usr/local/rocketmq-console/
    
  2. 把 rocketmq-console-ng-1.0.1.jar 和 application.properties 上传到 /usr/local/rocketmq-console/ 目录

  3. 启动管理控制台

    nohup java -jar rocketmq-console-ng-1.0.1.jar &
    
  4. 访问管理控制台
    注意:地址为你自己的 ip 地址,别填错了(查看 ip 地址:ip addr)
    http://192.168.26.129:9999


总结

以上就是在 Linux 下安装 RocketMQ 的流程了,代码仅供参考,欢迎讨论交流。
Windows 下安装 RocketMQ 请看我这篇博客:Windows 下安装 RocketMQ

以上是关于linux 安装 RocketMQ的主要内容,如果未能解决你的问题,请参考以下文章

如何安装arm-linux-gcc

linux vim安装

如何安装Linux?

linux 安装软件后 怎么检查安装是不是成功

怎样安装NOI Linux系统

Linux安装基本命令