由于RocketMQ是java实现,在安装前须有java环境,并且有maven环境。项目地址:https://github.com/alibaba/RocketMQ/
1.下载、编译(window)
下载RocketMQ源码,并解压。
maven编译(不了解maven,百度一下,这里就不介绍了):http://download.csdn.net/detail/tianwei7518/8137909
进入到源码解压目录下运行install.bat
或DOS命令行切换到解压目录运行: mvn -Dmaven.test.skip=true clean package install assembly:assembly -U
编译成功后,在target目录下会有alibaba-rocketmq-3.1.1.tar.gz,该压缩包就是安装包。
2.安装,运行(linux)
将alibaba-rocketmq-3.1.1.tar.gz上传到linux服务器,解压:
tar -zxvf alibaba-rocketmq-3.1.1.tar.gz
设置执行权限chmod +x ./alibaba-rocketmq/bin/*
由于我的虚拟器内存比较小,所以启动前需要调节一下,启动的虚拟内存参数配置。
vi ./alibaba-rocketmq/bin/runserver.sh #nameserver 内存
vi ./alibaba-rocketmq/bin/runbroker.sh #broke内存
JAVA_OPT_1="-server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=64m -XX:MaxPermSize=128m"(参考你自己的机器内存)
启动nameserver:nohup ./bin/mqnamesrv >/dev/null 2>&1 & #默认端口9876
关闭nameserver:./bin/mqshutdown namesrv
启动mqbroker :nohup ./bin/mqbroker -n 192.168.36.189:9876 >/dev/null 2>&1 & #默认端口10911(192.168.36.189:9876为nameserver,链接进行注册)
关闭mqbroker :./bin/mqshutdown broker
下面看一个实例,体验一下:
一、生产者Producer.java
-
package cn.slimsmart.rocketmq.demo.test;
-
import java.util.concurrent.TimeUnit;
-
import com.alibaba.rocketmq.client.exception.MQClientException;
-
import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
-
import com.alibaba.rocketmq.client.producer.SendResult;
-
import com.alibaba.rocketmq.common.message.Message;
-
//生产者
-
public class Producer {
-
public static void main(String[] args) throws MQClientException,
-
InterruptedException {
-
/**
-
* 一个应用创建一个Producer,由应用来维护此对象,可以设置为全局对象或者单例<br>
-
* 注意:ProducerGroupName需要由应用来保证唯一<br>
-
* ProducerGroup这个概念发送普通的消息时,作用不大,但是发送分布式事务消息时,比较关键,
-
* 因为服务器会回查这个Group下的任意一个Producer
-
*/
-
final DefaultMQProducer producer = new DefaultMQProducer(
-
"ProducerGroupName");
-
//nameserver服务,多个以;分开
-
producer.setNamesrvAddr("192.168.36.189:9876");
-
producer.se