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();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值