RocketMQ入门教程

目录

下载

安装/启动

  windows

  Ubuntu

 ​

代码案例

源代码下载


下载

    RocketMQ是由阿里巴巴在2010年开源的分布式消息中间件,目前已经捐给Apache基金会了。

    由此我们需要去Apache官网下载这里提供Apache RocketMQ官方文档

    我们直接下载二进制版本就行RocketMQ-4.4.0我们这里采用官网案例版本。(官方链接直接点击下载即可!)

   解压打开后

 

安装/启动

  安装方式提供两种  windows   Ubuntu

  windows

        前提 需要配置好java环境变量

       

刚刚解压的文件放在一个你喜欢的位置

我们去配置系统环境变量

   启动

启动mqnamesrv.cmd

cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行start mqnamesrv.cmd,启动NAMESERVER。成功后会弹出提示框,此框勿关闭。说明mqnamesrv启动成功了!

在继续启动mqbroker.cmd   

然后执行start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true启动BROKER。成功后会弹出提示框,此框勿关闭。   boot success 说明启动成功了!

窗口都不要关了!   去写代码     看代码案例!

 

  Ubuntu

        前提  需要配置好java环境变量

     一样的把解压的文件夹放在Ubuntu系统的某个文件夹中

  配置环境变量

vim /etc/profile

保存后

执行 source /etc/profile   让环境变量立即生效

 

使用nohup 命令会提示 nohup: 忽略输入并把输出追加到'nohup.out'   忽略它 直接回车

Start Name Server

  > nohup sh bin/mqnamesrv &
  > tail -f ~/logs/rocketmqlogs/namesrv.log
 出现 The Name Server boot success...

说明成功了

 

Start Broker

  > nohup sh bin/mqbroker -n localhost:9876 &
  > tail -f ~/logs/rocketmqlogs/broker.log 
  出现The broker[%s, 172.30.30.233:10911] boot success... 

说明成功了!

 

OK  都启动成功了!   直接看代码案例

 

关闭命令

> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

代码案例

创建一个项目  

引入关键依赖

 <dependency>
     <groupId>org.apache.rocketmq</groupId>
     <artifactId>rocketmq-client</artifactId>
     <version>4.5.1</version>
</dependency>

编写Producer 生产者

public class Producer {

    public static void main(String[] args) throws MQClientException {
        //使用生产者组名称进行实例化。
        DefaultMQProducer producer = new DefaultMQProducer("rmq-group");
        // 指定名称服务器地址。
        producer.setNamesrvAddr("172.16.157.128:9876");
        // 指定实例名称。
        producer.setInstanceName("producer");
        //启动实例
        producer.start();
        try {
            for (int i = 0; i < 10; i++) {
                Thread.sleep(1000);  //每秒发送一次MQ
                //创建消息实例,指定主题,标记和消息正文。
                Message msg = new Message("TopicA-test",// topic
                        "TagA",// tag
                        (new Date() + "Hello RocketMQ ,QuickStart" + i)
                                .getBytes()// body
                );
                //呼叫发送消息以向其中一个经纪人发送消息。
                SendResult sendResult = producer.send(msg);

                System.out.println(sendResult);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        //生产者实例不再使用后关闭。
        producer.shutdown();
    }

}

接着编写我们的Consumer消费者

public class Consumer {
    public static void main(String[] args) throws MQClientException {
        // 使用指定的使用者组名称进行实例化
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("rmq-group");
        // 指定名称服务器地址。
        consumer.setNamesrvAddr("172.16.157.128:9876");
        // 订阅一个要消费实例名称。
        consumer.setInstanceName("consumer");
        // 订阅一个要消费的主题。
        consumer.subscribe("TopicA-test", "TagA");
        //注册回调以在从代理获取的消息到达时执行。
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(
                    List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
                for (MessageExt msg : msgs) {
                    System.out.println(new String(msg.getBody()));
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        //启动消费者实例。
        consumer.start();

        System.out.println("Consumer Started.");
    }
}

这个ip地址改为你自己的哦!

我们先启动Consumer消费者

此时是没有东西可以消费的!

我们在启动Producer生产者

 Producer每隔1秒发送消息  切换到Consumer控制台  发现 有一条消息进来  就消费一条消息

源代码下载

源代码已上传github

https://github.com/rrym/MqDemo.git

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值