为了账号安全,请及时绑定邮箱和手机立即绑定

Rocketmq安装资料:新手入门指南

标签:
中间件
概述

本文详细介绍了Rocketmq的安装过程,包括环境准备、下载RocketMQ、安装启动过程以及验证安装成功的步骤。通过一系列步骤,确保RocketMQ能够在Linux系统上顺利运行。

RocketMQ简介
RocketMQ是什么

RocketMQ是由阿里巴巴开源的一款分布式消息中间件,基于Java语言开发,是Apache软件基金会的顶级项目。RocketMQ具有高性能、高可用、高可靠、大规模等特点,适用于分布式应用之间的异步通信、流量削锋、系统解耦等场景。

RocketMQ采用了分布式架构,基于发布/订阅模式,可以实现消息的可靠传输。它支持多种消息类型,包括普通消息、顺序消息、事务消息、定时消息、消息回溯等,满足不同场景下的需求。

RocketMQ的主要特性
  • 高并发性能:RocketMQ每秒可以处理数十万的消息,支持百万级的消息积压,适合高并发场景。
  • 高可用性:RocketMQ支持多主多从模式,可以部署多个NameServer和Broker节点,通过主从复制保证数据的一致性和可靠性。
  • 高可靠性:RocketMQ提供了消息的可靠传输机制,支持消息的重试和幂等性处理,保证消息不丢失。
  • 多种消息类型:RocketMQ支持普通消息、顺序消息、事务消息、定时消息、消息回溯等多种类型的消息,满足不同的业务需求。
  • 水平扩展:RocketMQ通过增加Broker节点来实现水平扩展,方便应对业务量的增长。
  • 消息过滤:RocketMQ支持基于SQL语句的消息过滤,可以根据业务逻辑对消息进行过滤处理。
  • 消息轨迹:RocketMQ提供了消息轨迹功能,可以追踪消息的流转过程,方便排查问题。
环境准备
操作系统要求

RocketMQ支持多个操作系统,包括Linux、Windows、macOS等。本文将以Linux系统为例进行说明。Linux系统推荐使用CentOS 7或Ubuntu 18.04以上版本。

Java环境配置

RocketMQ基于Java语言开发,因此需要安装Java环境。建议安装JDK 8或更高版本。以下是安装步骤:

  1. 下载JDK:访问JDK官方网站,下载对应版本的JDK安装包。
  2. 安装JDK:以JDK 8为例,使用以下命令安装JDK:
sudo yum install -y java-1.8.0-openjdk
  1. 验证安装:安装完成后,可以通过以下命令验证JDK是否安装成功:
java -version

输出结果应该显示JDK版本信息,如:

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
下载RocketMQ
官方下载地址

您可以访问RocketMQ官方网站下载RocketMQ的最新版本。在下载页面,选择最新稳定版本。例如,当前最新版本为4.9.3

下载完成后,解压下载的压缩包到指定目录。例如,将RocketMQ解压到/opt/rocketmq目录:

tar -zxvf rocketmq-all-4.9.3-bin-release.tar.gz -C /opt/rocketmq
安装RocketMQ
解压RocketMQ

下载并解压RocketMQ后,您需要设置环境变量以便后续操作。编辑/etc/profile文件,添加以下内容:

export ROCKETMQ_HOME=/opt/rocketmq
export PATH=$PATH:$ROCKETMQ_HOME/bin

保存文件并执行source /etc/profile使环境变量生效。

初始化RocketMQ

RocketMQ提供了一些初始化脚本,可以帮助您快速启动RocketMQ服务。执行以下命令初始化RocketMQ:

sh bin/mqadmin updateEnv

该命令会检查RocketMQ环境设置,如果环境变量设置正确,会输出环境信息。

启动RocketMQ
启动NameServer

NameServer是RocketMQ的名称服务器,用于管理和维护Broker节点的信息。启动NameServer,执行以下命令:

nohup sh bin/mqnamesrv &

通过以下命令查看NameServer的启动日志:

tail -200f ~/logs/rocketmqlogs/namesrv.log

成功启动后,日志中会输出一些信息,如:

The Name Server runs in 127.0.0.1:9876
启动Broker

Broker是RocketMQ的消息代理服务器,负责消息的生产和消费。以下步骤启动Broker:

  1. 创建Broker配置文件:在conf目录下创建broker.properties文件,内容如下:

    # Broker的唯一标识符
    brokerId=0
    # Broker的名称
    brokerName=localhost
    # Broker的IP地址
    brokerIP1=127.0.0.1
    # NameServer地址
    namesrvAddr=127.0.0.1:9876
    # Broker的运行模式,可选值为ASYNC_WRITE(异步刷盘),SYNC_FLUSH(同步刷盘)
    brokerRole=ASYNC_WRITE
    # 消息保存时间
    msgStoreConfigFile=/opt/rocketmq/store/Config/2MMapFileIndexConfig
  2. 启动Broker:执行以下命令启动Broker:

    nohup sh bin/mqbroker -n 127.0.0.1:9876 -c ~/rocketmq/conf/broker.properties &
  3. 查看Broker启动日志

    tail -200f ~/logs/rocketmqlogs/broker/localhost/localhost.log

成功启动后,日志中会输出一些信息,如:

The broker[localhost,127.0.0.1:10911] starts spring and starts to listen messages.
验证安装
发送消息测试

为了验证RocketMQ是否安装成功,您可以发送一条消息进行测试。首先,创建一个生产者应用程序来发送消息。以下是一个简单的生产者示例代码:

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

public class SimpleProducer {
    public static void main(String[] args) throws Exception {
        // 创建生产者实例,设置生产者组名
        DefaultMQProducer producer = new DefaultMQProducer("SimpleProducerGroup");
        // 设置NameServer地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        // 启动生产者
        producer.start();
        // 创建消息,设置主题、标签和消息内容
        Message msg = new Message("SimpleTopic", "TagA", "Hello RocketMQ".getBytes());
        // 发送消息
        SendResult sendResult = producer.send(msg);
        // 输出发送结果
        System.out.println(sendResult);
        // 关闭生产者
        producer.shutdown();
    }
}

编译并运行上述代码,查看RocketMQ的Broker日志,确认消息是否已成功发送。您可以通过以下步骤编译并运行Java代码:

javac -cp /opt/rocketmq/lib/* SimpleProducer.java
java -cp /opt/rocketmq/lib/*:. SimpleProducer
接收消息测试

接下来,创建一个消费者应用程序来接收消息进行测试。以下是一个简单的消费者示例代码:

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;

public class SimpleConsumer {
    public static void main(String[] args) throws Exception {
        // 创建消费者实例,设置消费者组名
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("SimpleConsumerGroup");
        // 设置NameServer地址
        consumer.setNamesrvAddr("127.0.0.1:9876");
        // 订阅Topic,设置消息过滤器
        consumer.subscribe("SimpleTopic", "*");
        // 设置消息监听器
        consumer.setMessageListener((MessageListenerConcurrently) (msgs, context) -> {
            for (MessageExt msg : msgs) {
                System.out.println("Receive New Messages: " + new String(msg.getBody()));
            }
            return null;
        });
        // 启动消费者
        consumer.start();
    }
}

编译并运行上述代码,确保消费者已经启动并成功订阅了消息。您可以通过以下步骤编译并运行Java代码:

javac -cp /opt/rocketmq/lib/* SimpleConsumer.java
java -cp /opt/rocketmq/lib/*:. SimpleConsumer

然后,再次运行生产者代码发送消息,查看消费者是否接收到消息。通过上述步骤,您可以完成RocketMQ的安装和简单的消息发送接收测试,证明RocketMQ已经成功安装并正常运行。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消