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.properties
和params.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
请根据实际需求调整上述配置文件中的路径和其他参数。
四、启动RocketMQ4.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,还了解了配置和管理消息中间件的关键步骤。
共同学习,写下你的评论
评论加载中...
作者其他优质文章