windows部署RocketMQ以及图形界面(自测通过)

一.搭建环境

1.jdk8 2.maven 3.git 4.win10

二.RocketMQ部署

下载地址 : http://rocketmq.apache.org/dowloading/releases/

在这里插入图片描述下载好,正常解压就好,无其他另类操作

设置环境变量

在这里插入图片描述

在这里插入图片描述

设置邮局和服务的脚本,计算机内存够大,不改也是可以的

在这里插入图片描述runbroker.cmd
在这里插入图片描述
runserver.cmd
在这里插入图片描述

启动 : 管理员身份运行cmd
  1. 启动mqnamesrv

在这里插入图片描述
2. 启动broker,并指定端口

在这里插入图片描述
完成以上两步就在本地部署好了!!!

spring-boot代码测试

1. pom.xml
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <scope>provided</scope>
</dependency>

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

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.44</version>
</dependency>
2. producer 生产者

发送消息主要流程 : 创建一个DefaultMQProducer对象,设置好GroupName和NameServer地址后启动,将待发消息拼装成Message对象,使用Producer发送

package producer;

import org.apache.rocketmq.client.exception.MQClientException;
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;


public class Producer {
    public static void main(String[] args) throws MQClientException {
        // 生产者组名称实例化
        DefaultMQProducer producer = new DefaultMQProducer("TestGroup");
        producer.setNamesrvAddr("127.0.0.1:9876");
//        producer.setInstanceName("mq-instanceName");
        // 启动实例
        producer.start();
        try {
            for (int i = 0; i < 5; i++) {
                // 启动实例 创建消息实例 主题标记和消息正文
                Message message = new Message("TestTopic", "tagA", ("生产者发送消息" + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
                System.out.println("生产者发送消息"+i);
                // 调用发送消息将消息传递给代理
                SendResult sendResult = producer.send(message);
                System.out.printf("%s%n",sendResult);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 一旦生产者实例不再使用,就立即关闭
        producer.shutdown();
    }
}

在这里插入图片描述

3. consumer 消费者
package consumer;

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.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;

import java.util.List;

public class Consumer {
    public static void main(String[] args) throws MQClientException {
        // 使用指定的使用者组名称实例化
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("TestGroup");
        // 指定名称服务器地址
        consumer.setNamesrvAddr("127.0.0.1:9876");
        // 指定从哪里开始,以防指定的消费群体是一个全新的消费群体
        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);

//        consumer.setInstanceName("mq-instanceName");
        // 指定要使用的另一个主题
        consumer.subscribe("TestTopic", "tagA");
        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
//        consumer.setMessageModel(MessageModel.BROADCASTING);
        // 注册回调函数,以便在从代理获取的消息到达时执行
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            public ConsumeConcurrentlyStatus consumeMessage(
                    List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
                for (MessageExt msg : msgs) {
                    System.out.println("消费者消费数据:"+new String(msg.getBody()));
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        // 启动消费者实例
        consumer.start();
        // 如果配置信息错误或者当前服务不可用,报错MQClientException
        consumer.fetchSubscribeMessageQueues("TestTopic");
    }
}

在这里插入图片描述
consumer或producer都必须设置GroupName,NameServer地址以及端口号,然后指明要操作的Topic,最后进入发送和接收数据

图形界面管理集群,有一定经验后,可以使用命令行,功能更加全面(后期在总结)

Git地址 : git clone https://github.com/apache/rocketmq-externals.git

下载好可以看一下D:\GitIDEA\rocketmq-externals\rocketmq-console\src\main\resources 里面的application.properties文件

在这里插入图片描述

在rocketmq-console下打包,将打出来的jar包,到jar包目录下直接用java -jar rocketmq-console-ng-1.0.1.jar启动就OK了,已上图

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值