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

入门教程:轻松完成RocketMQ安装与基础配置

标签:
杂七杂八
一、安装前的准备

1.1 系统环境检查

为了确保顺畅地安装和使用RocketMQ,需要确保你的系统满足以下要求:

  • 操作系统:支持Linux和Windows操作系统。在这里,我们选择使用Linux作为示例环境。
  • Java Development Kit (JDK):最低要求JDK 8或更高级版本。安装JDK可以通过以下命令行操作:
sudo yum install java-1.8.0-openjdk-devel -y  # 对于Linux系统

1.2 前置依赖安装

为了构建和运行RocketMQ,建议安装maven构建工具,通过以下命令行进行安装:

sudo yum install java-1.8.0-openjdk-devel maven -y
二、下载RocketMQ

访问RocketMQ的官方GitHub仓库或官方网站,获取最新版本的源代码。使用命令行操作来实现:

git clone https://github.com/apache/rocketmq.git
三、解压及配置文件

3.1 解压安装包

接下来,解压下载的RocketMQ源代码包。对于名为apache-rocketmq-4.8.0.tar.gz的文件,执行解压命令如下:

tar -zxvf apache-rocketmq-4.8.0.tar.gz -C /opt/rocketmq

3.2 修改配置文件

RocketMQ配置文件位于/opt/rocketmq/conf目录下,包含server.propertiesparams.properties。以下为一个配置参数示例:

# 日志目录设置
log4j.rootLogger=DEBUG, FILE
# 日志文件路径设置
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=/opt/rocketmq/logs/rocketmq_server.log
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.Append=true

请根据实际需求调整上述配置文件中的路径和其他参数。

四、启动RocketMQ

4.1 启动生产者服务

在RocketMQ源代码目录下的bin目录中,执行启动生产者服务的脚本:

cd /opt/rocketmq/bin
./rocketmq-server.sh start

在启动过程中,控制台将输出日志信息,显示服务正在初始化。

4.2 验证服务状态

验证服务是否已成功启动,可以通过访问RocketMQ的HTTP控制台或监听9873端口进行确认。或,直接查看日志文件来确认服务状态:

grep "Server startup successful" /opt/rocketmq/logs/rocketmq_server.log
五、创建Topic与生产者、消费者实例

5.1 创建Topic

在RocketMQ的bin目录下使用rocketmq-console-producer.sh创建Topic:

./rocketmq-console-producer.sh -n localhost:9870 -g default -c /opt/rocketmq/examples/consumer/DefaultConsumerGroup

5.2 编写生产者示例代码

使用Java客户端库发送消息,如下所示:

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

import java.io.UnsupportedEncodingException;

public class ProducerExample {
    public static void main(String[] args) {
        DefaultMQProducer producer = new DefaultMQProducer("producerGroup");
        producer.setNamesrvAddr("localhost:9870");
        producer.start();

        try {
            Message msg = new Message("TopicTest", // Topic名称
                                        "TagA", // Tag
                                        "Key01", // Key
                                        ("Hello RocketMQ").getBytes(RemotingHelper.DEFAULT_CHARSET));
            SendResult sendResult = producer.send(msg);
            System.out.printf("%s%n", sendResult);
        } finally {
            producer.shutdown();
        }
    }
}

5.3 编写消费者示例代码

创建消费者实例以接收消息,代码如下:

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.MessageSelector;
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.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.remoting.common.RemotingHelper;

import java.util.List;

public class ConsumerExample {
    public static void main(String[] args) throws MQClientException {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("ConsumerGroup");
        consumer.setNamesrvAddr("localhost:9870");
        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);
        consumer.subscribe("TopicTest", "*"); // 订阅所有Tag的Topic
        consumer.registerMessageListener((msgs, context) -> {
            for (MessageExt msg : msgs) {
                System.out.printf("Received msg: %s%n", new String(msg.getBody()));
            }
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
        });
        consumer.start();
        System.out.println("Consumer started...");
    }
}
六、实践与调试

6.1 发送测试消息

运行生产者代码以发送消息,然后使用消费者代码验证消息是否成功接收。

6.2 消费测试消息

确保消费者正确接收消息,并在控制台显示消息内容。

6.3 查看消息日志

通过检查/opt/rocketmq/logs目录中的日志文件,验证消息发送和接收情况。

至此,你已成功安装并配置了RocketMQ,同时掌握了如何发送和接收消息的实践。通过这一教程,你不仅学会了使用RocketMQ,还了解了配置和管理消息中间件的关键步骤。

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消