rocketmq的入门使用
linux环境安装rocketmq
参照官网:https://rocketmq.apache.org/docs/quick-start/
异常处理
启动namesev参数:nohup sh mqnamesrv -n “192.168.37.130:9876” &
tail -f ~/logs/rocketmqlogs/namesrv.log
启动broker参数:nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
修改运行内存:256,128
brokercof:brokerIP1=192.168.37.130(服务器IP)
依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.2</version>
</dependency>
consumer
import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.MessageQueueListener;
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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
public class Comsumer {
private static final Logger LOGGER = LoggerFactory.getLogger(Comsumer.class);
public static void main(String[] args) {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("guozhen");
consumer.setNamesrvAddr("192.168.37.130:9876");
try {
consumer.subscribe("306B","*");
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list,
ConsumeConcurrentlyContext consumeConcurrentlyContext) {
for (MessageExt msg : list) {
LOGGER.info("获取的消息内容是:{}", new String(msg.getBody()));
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();
} catch (MQClientException e) {
e.printStackTrace();
} finally {
LOGGER.info("接收消息服务已启动。。。");
}
}
}
producter
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
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.exception.RemotingException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
public class Producer {
public static final Logger LOG = LogManager.getLogger(Producer.class);
public static void main(String[] args) {
//1.谁来发
DefaultMQProducer producer = new DefaultMQProducer("guozhen");
//2.发给谁
producer.setNamesrvAddr("192.168.37.130:9876");
//3.怎么发
try {
producer.start();
//4.发送的内容
Message message = null;
message = new Message("306B", "胖大海".getBytes(StandardCharsets.UTF_8));
//5.发送消息
SendResult send = producer.send(message);
LOG.info(send);
} catch (MQClientException e) {
LOG.error("MQClientException:", e);
} catch (RemotingException e) {
LOG.error("RemotingException", e);
} catch (MQBrokerException e) {
LOG.error("MQBrokerException", e);
} catch (InterruptedException e) {
LOG.error("InterruptedException", e);
} finally {
//6.清扫战场
producer.shutdown();
}
}
}