首页 > 其他分享 >RocketMQ安装教程

RocketMQ安装教程

时间:2023-06-25 11:34:23浏览次数:37  
标签:教程 consumer RocketMQ import apache org 安装 rocketmq

  RocketMQ是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。它是阿里巴巴双十一购物狂欢节和众多大规模互联网业务场景的必备基础设施。在同一年,阿里巴巴正式开源了RocketMQ的第一个版本。

  2015年,RocketMQ在消息传递方面迎来了一批重量级功能发布,包括事务消息、SQL过滤、轨迹追踪、定时消息、高可用多活等,以满足阿里巴巴日益丰富的业务场景。由于这些优势,RocketMQ 取代了阿里巴巴自主研发的另一款MQ产品Notify,成为阿里巴巴的首选消息中间件,实现了内部应用的百分百接入。在2016年,RocketMQ在阿里云上开发了首个全托管服务,帮助大量数字化转型的企业构建现代应用,并开始体验大规模的云计算实践。同年,RocketMQ被捐赠给Apache基金会,并入选孵化器项目,旨在未来为更多开发者服务。

  2017年从Apache基金会毕业后,RocketMQ被指定为顶级项目(TLP)。

  一:RocketMQ安装

  1、下载

  从apache文件库下载:https://archive.apache.org/dist/rocketmq/

  2、配置环境变量

 

 

 

  3、启动

  进入到刚刚解压完的文件bin目录下,先启动NAMESERVER

  命令:start mqnamesrv.cmd,启动成功后不要关闭窗口

 

  启动BROKER

  start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

  同样启动成功后不要关闭窗口

 

  二:RocketMQ图形化界面

  1、下载console

  地址:https://github.com/apache/rocketmq-dashboard

  2、将项目导入开发工具修改application.yml文件,将rocketmq地址修改为自己的地址。启动项目

   3、访问控制台

 

  三:整合项目

  1、引入jar包

       <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>${rocketmq.version}</version>
        </dependency>    

  2、编写测试类

package com.xiaoyu.provider.order.util;


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.common.RemotingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * WJY
 */
public class ProducerExample {

    private static final Logger logger = LoggerFactory.getLogger(ProducerExample.class);

    public static void main(String[] args) throws MQClientException {
        final DefaultMQProducer producer = new DefaultMQProducer (  "test_producer_group");
        // 设置nameServer地圳
        producer.setNamesrvAddr ("127.0.0.1:9876") ;
        producer.start() ;
        for (int i = 0 ; i < 1000; i ++){
            try {
                Message message = new Message("TestTopic", "tagA", ("生产者发送消息" + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
                System.out.println("生产者发送消息"+i);
                // 调用发送消息将消息传递给代理
                SendResult sendResult = producer.send(message);
                System.out.printf("%s%n",sendResult);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        // 一旦生产者实例不再使用,就立即关闭
        producer.shutdown();
    }

}
package com.xiaoyu.provider.order.util;

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.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

/**
 * WJY
 */
public class PushConsumerExample {
    private static final Logger logger = LoggerFactory.getLogger(PushConsumerExample.class);


    public static void main(String[] args) throws MQClientException {
        // 使用指定的使用者组名称实例化
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("test_producer_group");
        // 指定名称服务器地址
        consumer.setNamesrvAddr("127.0.0.1:9876");
        // 指定从哪里开始,以防指定的消费群体是一个全新的消费群体
        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);

        //   订阅主题 tag="*"代表订阅 TopicTest主题下所有子主题消息
        consumer.subscribe("TestTopic", "tagA");
        // 注册回调函数,以便在从代理获取的消息到达时执行
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            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();
        // 如果配置信息错误或者当前服务不可用,报错MQClientException
        consumer.fetchSubscribeMessageQueues("test_producer_group");
    }

}

  分别启动ProducerExample和PushConsumerExample类

 

 

  

标签:教程,consumer,RocketMQ,import,apache,org,安装,rocketmq
From: https://www.cnblogs.com/wangjinyu/p/17502498.html

相关文章

  • Openssl安装使用(三):OpenSSL安装常见问题
    (1)执行Configure命令(配置编译参数)”perlconfigureVC-WIN32”遇到如下问题:Can'tlocalWin32/Console.pemin@INC(youmayneedtoinstalltheWin32:Consolemodule)(@INC contains:C:\Perl64\site\libC:\Perl64\lib)atC:\Perl64\lib/ActivePerl/Config.pmline400.......
  • Apache RocketMQ EventBridge:构建下一代事件驱动引擎
    作者:沈林前言事件驱动,这个词在部分人印象中,它是一个过时的技术——没什么新意。从时间上看,确实也是这样,上世纪60年代,事件驱动就已经被正式提出,经常会被在GUI编程中。但是在有些人印象中,事件驱动又是一个非常陌生,非常新颖的技术。不管怎么样,现实是已经有越来越多的公司,开始......
  • Linux 安装/卸载 MySQL 8.0
    Linux安装/卸载MySQL8.0原创 默存 全栈客 2023-06-1511:14 发表于甘肃收录于合集#linux1个#mysql1个安装Centos安装MySQL8.0操作系统环境[root@t2 local]# hostnamectlStatic hostname: hadoop-masterIcon name: computer-desktopChassis: de......
  • 随笔(二十一)『docker 安装 XXL-JOB』
    1、拉取镜像dockerpullxuxueli/xxl-job-admin:2.3.12、数据库脚本https://gitee.com/xuxueli0323/xxl-job/blob/2.3.1/doc/db/tables_xxl_job.sql3、挂载目录mkdir-p/mydata/xxl-job/data4、创建并启动容器dockerrun-ePARAMS="--spring.datasource.url=jdbc:mysq......
  • 宝塔面板实用教程(1):10分钟部署在线客服系统
    客服系统发布以来,一直有朋友询问如何在宝塔面板中安装部署,开始我一直认为参考Linux版的安装教程就可以了,一直没有专门写宝塔环境的教程。这段时间来咨询的朋友越来越多,经过了解,我才知道宝塔面板的普及率有多高,好吧,那我就认真对待一下这个问题,详细编写了基于宝塔安装部署升讯威在......
  • harbor 安装
    下载地址:https://github.com/goharbor/harbor/releases?page=1下载了多个版本,发现仅v1.10.17版本支持GC清理,所以这里安装的v1.10.17版本机器需要安装docker以及docker-compose打开如上地址,下载离线安装包下载完成安装包,执行解压命令tar-zxvfharbor-offline-installer......
  • Three.js教程:WebGL渲染器设置(锯齿模糊)
    推荐:将NSDT场景编辑器加入你的3D工具链其他系列工具:NSDT简石数字孪生WebGL渲染器设置(锯齿模糊)一般实际开发,threejs的WebGL渲染器需要进行一些通用的基础配置,本节课给大家简单介绍下,比如渲染模糊或锯齿问题。渲染器锯齿属性.antialias设置渲染器锯齿属性.antialias的值可以......
  • npm安装淘宝镜像cnpm报错:npm ERR! Windows_NT 10.0.19045
    ☺1、最终解决方法:镜像不需要下载,配置即可#设置代理为cnpmnpmconfigsetregistryhttps://registry.npm.taobao.org压根就不需要执行下载cnpm命令:npminstall-gcnpm--registry=https://registry.npm.taobao.org2、关于npm安装淘宝镜像的报错情况:和node版本有关......
  • 自建frp服务器,搭建内网穿透,linux安装及docker安装
    frp服务搭建frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能......
  • 安装新版VS2022之后,添加EF实体模型没有生成对于的表格
    1)找到vs2022安装路径中的EF6.Utility.CS.ttinclude.tt文件,需要去掉.tt后缀,然后再做以下修改【部分版本直接是EF6.Utility.CS.ttinclude则直接进入第二步】2)修改EF6的实用程序EF6.Utility.CS.ttinclude文件,它默认的位置在:C:\ProgramFiles\MicrosoftVisualStudio\2022\Profes......