安装所需要的所有安装包
自己可以搜索源码自己打包,也可以自己百度下载,下面的是我的相关软件包,有需要可以自己下载:
https://download.youkuaiyun.com/download/qq_26709459/10914562
一、安装JDK并配置好环境变量
下载并安装jdk
详细过程可参考:https://blog.youkuaiyun.com/qq_26709459/article/details/80466239
二、下载RocketMq并安装
①首先解压RocketMq3.2.6
tar -zxvf alibaba-rocketmq-3.2.6.tar.gz
②修改配置
由于RocketMq启动默认设置的内存很大,所以做如下修改(内存大的可以忽视):
进入“bin”目录下,修改如下两个文件
(a)runserver.sh
源文件如下:
修改如下:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=320m"
(b)runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=320m"
注:内存配置也可以根据自己配置进行修改,具体配置含义自行百度了解。
③创建配置文件
创建文件“broker.properties”
文件内容如下:
brokerIP1=(本机ip地址)
④启动服务
启动mqnamesrv
nohup sh mqnamesrv &
启动mqbroker
nohup sh ./mqbroker -n localhost:9876 -c broker.properties &
启动之后输入“jps”,就可以看到我们启动的服务了:
⑤启动rocketmq-console
rocketmq-console源码地址:https://github.com/apache/rocketmq-externals
启动命令如下:
nohup java -jar rocketmq-console-ng-1.0.0.jar &
这时候在输入“jps”就可以看到我们启动的rocketmq-console
注意:相关服务启动的log文件保存在“/root/logs/…”。
⑥访问
浏览器输入ip:端口便可以通过rocketmq-console进行查询。
注:rocketmq-console启动的配置信息在jar包中“application.properties”中,可根据自己相关信息进行修改。
进入之后可能会看到如下问题:
只需要执行如下操作即可(运维->
IsUseVIPChannel[开关关闭]->更新):
⑦关闭服务
sh mqshutdown broker
sh mqshutdown namesrv
关于更多信息以及集群方式,可以百度查阅更新信息。若有更好的安装方案,欢迎交流。
三、使用代码测试
引入jar包
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.2.3</version>
</dependency>
生产者:
public static void prodcer() throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("ButtonGroup");
producer.setNamesrvAddr("192.168.0.106:9876");
producer.setInstanceName("Button");
producer.start();
try {
for (int i = 0; i < 3; i++) {
Message msg = new Message("TopicA-test", "TagA", (new Date() + "你好" + i).getBytes());
SendResult sendResult = producer.send(msg);
System.out.println(sendResult);
}
} catch (Exception e) {
e.printStackTrace();
}
producer.shutdown();
}
消费者:
public static void consumer() throws Exception {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("ButtonGroup");
consumer.setNamesrvAddr("192.168.0.106:9876");
consumer.setInstanceName("Button");
consumer.subscribe("TopicA-test", "TagA");
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.");
}