pom
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.3.0</version>
</dependency>
生产者 (同步)
package apqrocketmq.producer;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;
public class SyncProducer {
/**
* 可靠的同步传输
* @param args
* @throws Exception
* @author dengyq
*/
public static void main(String[] args) throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("please_rename");
//设置连接地端口 必须要有
producer.setNamesrvAddr("localhost:9876");
//启动
producer.start();
for (int i = 0; i < 100; i++) {
//创建一个消息实例 message instance,主题 topic、标记 tag和消息主体body
Message msg = new Message("DemoTopic" /* Topic名字 */,
"TagA" /* Tag */,
("Hello RocketMQ " +
i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
);//设置消息内容
SendResult sendResult = producer.send(msg); //发送消息
System.out.printf("%s%n", sendResult);
}
//停止
producer.shutdown();
}
}
消费者
package apqrocketmq.consumer;
import java.util.List;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.MessageExt;
public class Consumer {
public static void main(String[] args) throws MQClientException {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("group_name");
// 设置nameServer地址,多个以;分隔
consumer.setNamesrvAddr("localhost:9876");
consumer.subscribe("DemoTopic", "*");//订阅topic *表示所有内容
consumer.registerMessageListener(new MessageListenerConcurrently() {
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
System.out.printf("%s Receive New Message: %s %n",Thread.currentThread().getName(),msgs);
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();//启动消费
System.out.printf("Consumer Start.%n");
}
}