继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

呼如林
关注TA
已关注
手记 497
粉丝 103
获赞 363
一、安装前的准备

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,还了解了配置和管理消息中间件的关键步骤。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP