依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-common</artifactId>
<version>4.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.9.1</version>
</dependency>
发送消息
public void sendMessage() throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("mygroup");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.start();
producer.setRetryTimesWhenSendAsyncFailed(2);
producer.setRetryTimesWhenSendFailed(2);
producer.setRetryAnotherBrokerWhenNotStoreOK(true);
String body = UUID.randomUUID().toString();
Message message = new Message("mytopic", body.getBytes());
producer.sendOneway(message);
SendResult sendResult = producer.send(message);
System.out.println("发送完成");
System.out.println("发送结果:" + sendResult);
body = UUID.randomUUID().toString();
message = new Message("mytopic", "mytag", body.getBytes());
producer.send(message);
System.out.println("发送完成");
body = UUID.randomUUID().toString();
message = new Message("mytopic", "mytag", "mykey", body.getBytes());
producer.send(message);
System.out.println("发送完成");
ArrayList<Message> messages = new ArrayList<>();
for (int i = 0; i < 5; i++) {
String bodyTemp = UUID.randomUUID().toString();
Message messageTemp = new Message("mytopic", bodyTemp.getBytes());
messages.add(messageTemp);
}
SendResult sendResults = producer.send(messages);
System.out.println("发送完成");
System.out.println("发送结果:" + sendResults);
producer.shutdown();
}
public void sendMessage2() throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("mygroup");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.start();
String body = UUID.randomUUID().toString();
Message message = new Message("mytopic", body.getBytes());
producer.send(message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult.getSendStatus());
}
@Override
public void onException(Throwable throwable) {
System.out.println("发送失败!!!发送失败!!!发送失败!!!");
}
});
System.out.println("发送完成");
}
public void sendMessage3() throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("mygroup");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.start();
for (int i = 0; i < 100; i++) {
producer.setRetryTimesWhenSendAsyncFailed(10);
String body = UUID.randomUUID().toString();
Message message = new Message("mytopic", body.getBytes());
Object arg = System.currentTimeMillis();
producer.send(
message,
new MessageQueueSelector() {
@Override
public MessageQueue select(
List<MessageQueue> mqs
, Message msg
, Object arg) {
System.out.println(mqs.size());
MessageQueue queue = mqs.get(0);
return queue;
}
}
, arg);
}
System.out.println("发送完成");
producer.shutdown();
}
接收消息
public void receiveMessage() throws Exception {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("mygroupp");
consumer.setNamesrvAddr("127.0.0.1:9876");
consumer.subscribe("mytopic", "*");
consumer.setConsumeThreadMax(2);
consumer.setConsumeThreadMin(2);
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(
List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
for (MessageExt messageExt : list) {
byte[] body = messageExt.getBody();
String s = new String(body);
String name = Thread.currentThread().getName();
System.out.println(s + "\t" + name);
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.setMessageModel(MessageModel.CLUSTERING);
consumer.start();
}