为了学习源代码,我们得先学会使用rocketmq,先上两个简单的demo
一、消息发送demo
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){
//1. 构造生产者,指定生产者ID
DefaultMQProducer producer = new DefaultMQProducer("Producer");
//2.连接namesrv服务器
producer.setNamesrvAddr("127.0.0.1:9876");
try {
//3.启动生产者
producer.start();
String message = "test";
//指定消息主题、消息内容
Message msg = new Message("PushTopic", message.getBytes());
//4.发送消息
SendResult result = producer.send(msg);
System.out.println("id:" + result.getMsgId() + " result:" + result.getSendStatus());
} catch (Exception e) {
e.printStackTrace();
}finally{
//5.关闭生产者
producer.shutdown();
}
}
}
二、消息消费demo
import java.util.List;
import com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import com.alibaba.rocketmq.common.message.Message;
import com.alibaba.rocketmq.common.message.MessageExt;
public class Consumer {
public static void main(String[] args){
//1.构造消费者,指定消费者ID
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("PushConsumer");
//2.连接namesrv服务器
consumer.setNamesrvAddr("127.0.0.1:9876");
try {
//3.订阅PushTopic的消息
consumer.subscribe("PushTopic", null);
//4.注册消息监听器
consumer.registerMessageListener(
new MessageListenerConcurrently() {
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext Context) {
Message msg = list.get(0);
System.out.println(msg);
String msgstr = new String(msg.getBody());
System.out.println(msgstr);
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
}
);
//5.启动消费者
consumer.start();
Thread.sleep(50 * 1000);
System.out.println("shutdown...");
//6.关闭消费者
consumer.shutdown();
} catch (Exception e) {
e.printStackTrace();
}
}
}
接下来就进入源码学习.... 一起去探险吧