您的位置:首页 > 其它

Window搭建部署RocketMQ及应用

2020-01-15 10:51 10 查看

安装运行

1、下载

建议下载发行版本,我试过自己编译,不知道为何报错了。

rocketmq-all-4.2.0-bin-release.zip

解压出来如下:

2、启动

NameServer

在启动之前需要配置系统环境,不然会报错。配置完成记得重启电脑

Please set the ROCKETMQ_HOME variable in your environment! 

系统环境变量名:ROCKETMQ_HOME

每个人不一样,对比如上我的路径—-变量值:D:\rocketMQ

进入window命令窗口,进入bin目录下,执行

1

start mqnamesrv.cmd

如上则NameServer启动成功。使用期间,窗口不要关机。

Broker

同理,再次开一个命令窗口,进入bin目录下,输入

1

start mqbroker.cmd
-n
localhost:9876

如上的 ip+port 是NameServer的进程,因为Nameser安装启动在本地,所以这里的 ip 是 localhost。

运行如上命令,可能会报如下错误。找不到或无法加载主类

如果出此情况,打开bin-->runbroker.cmd,修改%CLASSPATH%成

"%CLASSPATH%"

保存再次执行如上命令。执行成功后,窗口并不会显示什么,只是一个空窗口,代表成功。

 

书写代码

依赖RocketMQ

1

2

3

4

5

<
dependency
>

<
groupId
>org.apache.rocketmq</
groupId
>

<
artifactId
>rocketmq-client</
artifactId
>

<
version
>4.2.0</
version
>

</
dependency
>

1、Consumer

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

public
class
Consumer {

public
static
void
main(String[] args)
throws
MQClientException {

//这里填写group名字

DefaultMQPushConsumer consumer =
new
DefaultMQPushConsumer(
"my-group-name-A"
);

//NameServer地址

consumer.setNamesrvAddr(
"localhost:9876"
);

//1:topic名字 2:tag名字

consumer.subscribe(
"topic-name-A"
,
"tag-name-A"
);

consumer.registerMessageListener(
new
MessageListenerConcurrently() {

@Override

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();

System.out.println(
"Consumer Started!"
);

}

}

先运行起来

2、Producer

注意匹配相应参数:

group topic tag

1

2

3

4

5

6

7

8

9

10

11

public
class
Producer {

public
static
void
main(String[] args)
throws
MQClientException,RemotingException,InterruptedException,MQBrokerException {

DefaultMQProducer producer =
new
DefaultMQProducer(
"my-group-name-A"
);

producer.setNamesrvAddr(
"localhost:9876"
);

producer.start();

Message message =
new
Message(
"topic-name-A"
,
"tag-name-A"
,
"Message : My blog address guozh.net"
.getBytes());

producer.send(message);

System.out.println(
"Message sended"
);

producer.shutdown();

}

}

再次运行 producer。

然后去 Consumer 看看是否收到消息。

监控平台

和其他的MQ一样,这里也提供了Window版本可视化的监控和 Linux监控。可以看到消息消费的具体情况,但是其实在实际开发过程中,Window显示的界面数据非常少,看不到多少内容。所以实际项目中都是看 Linux 数据。

我们这边项目看MQ消费情况也是在Linux上部署查看。

但是可以学习学习,为Linux的安装拓展画面感。

1、下载

rocketmq-console

其实这里提供了安装部署的方法,可以根据实际情况来

所以一步一步来吧,首先修改配置文件。修改application.properties,具体位置如下

rocketmq-console\src\main\resources

主要如上两处需要修改,平台部署的端口。我这里 8080 没被使用,这里就用 8080。下面是NameServer的启动位置,根据自己实际情况填写即可。

2、启动
首先,上面的 Tips 也说了,看看自己的Maven镜像是不是阿里云的,不然下载jar可能下载不下来或者很慢,这里不用说了。

进入命令窗口,进入rocketmq-console目录,执行。

1

mvn clean package
-Dmaven
.test.skip=true

Build成功后,再次执行

1

java
-jar
target/rocketmq
-console
-ng
-1.0.0.jar

完成后,进入网址即可,比如我这是 localhost:8080

转载于:https://my.oschina.net/monroe/blog/3078150

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chuhou4381 发布了0 篇原创文章 · 获赞 0 · 访问量 949 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: