参考官网
http://rocketmq.apache.org/docs/quick-start/
[root@vm_1 ~]# git clone -b develop https://github.com/apache/rocketmq.git
[root@vm_1 ~]# cd rocketmq
[root@vm_1 ~]# mvn -Prelease-all -DskipTests clean install -U
[root@vm_1 ~]# cd distribution/target/apache-rocketmq
[root@vm_1 ~]# nohup sh bin/mqnamesrv &
[root@vm_1 ~]# tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success…
启动不了, 修改runserver.sh和runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320m"
[root@vm_1 ~]# nohup sh bin/mqbroker -n localhost:9876 &
[root@vm_1 ~]# tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success…
启动成功之后查看
[root@vm_1 ~]# jps
3811 Jps
25557 Kafka
3722 NamesrvStartup
3758 BrokerStartup
[root@vm_1 ~]# sh bin/mqshutdown broker
The mqbroker(36695) is running…
Send shutdown request to mqbroker(36695) OK
[root@vm_1 ~]# sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running…
Send shutdown request to mqnamesrv(36664) OK
[root@vm_1 ~]# export NAMESRV_ADDR=localhost:9876
[root@vm_1 ~]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= …
[root@vm_1 ~]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt…
[root@vm_1 ~]# sh bin/mqshutdown broker
[root@vm_1 ~]# sh bin/mqbroker -c >broker.p
[root@vm_1 ~]# vim broker.p
修改里面的IP地址如下
namesrvAddr=你机器的ip:9876
brokerIP1=你机器的ip
brokerName=localhost
brokerClusterName=DefaultCluster
-c,–configFile 代理配置属性文件
-m,–printImportantConfig 打印重要配置项
-n,–namesrvAddr 服务器地址列表, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,–printConfigItem 打印所有配置项
重启broker
nohup sh bin/mqbroker -c broker.p &
这样就可以在本地写测试程序连接云上的rocketmq了
生成者
public class Producer {
public static void main(String[] args) throws MQClientException, InterruptedException {
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
producer.setNamesrvAddr("123.56.13.70:9876");
producer.start();
for (int i = 1000; i < 2000; i++) {
try {
Message msg = new Message("TopicTest" /* Topic */,
"TagA" /* Tag */,
("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
);
SendResult sendResult = producer.send(msg);
System.out.printf("%s%n", sendResult);
} catch (Exception e) {
e.printStackTrace();
Thread.sleep(1000);
}
}
producer.shutdown();
}
}
消费者
public class Consumer {
public static void main(String[] args) throws InterruptedException, MQClientException {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
consumer.setNamesrvAddr("123.56.13.70:9876");
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
consumer.subscribe("TopicTest", "*");
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
ConsumeConcurrentlyContext context) {
System.out.printf(Thread.currentThread().getName() + " Receive New Messages: " + msgs + "%n");
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();
System.out.printf("Consumer Started.%n");
}
}