1.消息生产者步骤
1.1.创建消息生产者,并指定生产者组名
1.2.指定NameServer地址
1.3.启动producer
1.4.创建消息对象,指定主题 Topic,Tag,消息体
1.5.发送消息
1.6.关闭producer
2.消息消费者步骤
2.1.创建消费者Consumer,并指定消费者组名
2.2.指定NameServer地址
2.3.订阅主题Topic,Tag
2.4.设置回调函数,处理消息
2.5.启动消费Consumer
3.基本样例
3.1.发送同步消息
场景
对可靠性要求比较高,比如:重要的通知、短信等
代码
/**
* 同步消息
* @author lidalin
*/
public class SyncProducer {
public static void main(String[] args) throws MQClientException, MQBrokerException, RemotingException, InterruptedException, UnsupportedEncodingException {
//1.1.创建消息生产者,并指定生产者组名
DefaultMQProducer producer = new DefaultMQProducer("group1");
//1.2.指定NameServer地址
producer.setNamesrvAddr("localhost:9876");
//1.3.启动producer
producer.start();
//1.4.创建消息对象,指定主题 Topic,Tag,消息体
Message message = new Message("TopicTest", "tag1", "Hello World".getBytes());
//1.5.发送消息
SendResult result = producer.send(message);
System.out.println(result);
//1.6.关闭producer
producer.shutdown();
}
}
3.2.发送异步消息
场景
对性能要求较高
代码
/**
* 异步消息
* @author lidalin
*/
public class SyncProducer {
public static void main(String[] args) throws MQClientException, MQBrokerException, RemotingException, InterruptedException, UnsupportedEncodingException {
//1.1.创建消息生产者,并指定生产者组名
DefaultMQProducer producer = new DefaultMQProducer("group1");
//1.2.指定NameServer地址
producer.setNamesrvAddr("localhost:9876");
//1.3.启动producer
producer.start();
//1.4.创建消息对象,指定主题 Topic,Tag,消息体
Message message = new Message("TopicTest", "tag1", "Hello World".getBytes());
//1.5.发送异步消息
producer.send(message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
System.out.println(e);
}
});
//1.6.关闭producer
producer.shutdown();
}
}
3.3.发送单向消息
场景
生产者不关心发送结果,数据价值不高
代码
/**
* 单向消息
* @author lidalin
*/
public class OnewayProducer {
public static void main(String[] args) throws MQC