首页 > 其他分享 >RocketMQ版控制台,在左侧

RocketMQ版控制台,在左侧

时间:2023-07-11 11:44:53浏览次数:36  
标签:接入点 RocketM Topic 实例 消息 公网 Q版 控制台

  1. 打开IntelliJ IDEA,创建一个Java工程。

  2. 在pom.xml文件中添加以下依赖引入Java SDK的依赖库。

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


    1. 在IDEA中打开已创建的Java工程,在src/main/java路径下创建一个Java类。

    2. 将Java类的内容替换为云消息队列 RocketMQ 版提供的消息订阅代码。示例代码如下:

       
      package doc;
      
      import org.apache.rocketmq.client.apis.*;
      import org.apache.rocketmq.client.apis.consumer.ConsumeResult;
      import org.apache.rocketmq.client.apis.consumer.FilterExpression;
      import org.apache.rocketmq.client.apis.consumer.FilterExpressionType;
      import org.apache.rocketmq.client.apis.consumer.PushConsumer;
      import org.apache.rocketmq.shaded.org.slf4j.Logger;
      import org.apache.rocketmq.shaded.org.slf4j.LoggerFactory;
      
      import java.io.IOException;
      import java.util.Collections;
      
      public class PushConsumerExample {
          private static final Logger LOGGER = LoggerFactory.getLogger(PushConsumerExample.class);
      
          private PushConsumerExample() {
          }
      
          public static void main(String[] args) throws ClientException, IOException, InterruptedException {
           /**
               * 实例接入点,从控制台实例详情页的接入点页签中获取。
               * 如果是在阿里云ECS内网访问,建议填写VPC接入点。
               * 如果是在本地公网访问,或者是线下IDC环境访问,可以使用公网接入点。使用公网接入点访问,必须开启实例的公网访问功能。
               */
              String endpoints = "rmq-cn-xxx.{regionId}.rmq.aliyuncs.com:8080";
              //指定需要订阅哪个目标Topic,Topic需要提前在控制台创建,如果不创建直接使用会返回报错。
              String topic = "Your Topic";
              //为消费者指定所属的消费者分组,Group需要提前在控制台创建,如果不创建直接使用会返回报错。
              String consumerGroup = "Your ConsumerGroup";
              final ClientServiceProvider provider = ClientServiceProvider.loadService();
              ClientConfigurationBuilder builder = ClientConfiguration.newBuilder().setEndpoints(endpoints);
              /**
               * 如果是使用公网接入点访问,configuration还需要设置实例的用户名和密码。用户名和密码在控制台实例详情页获取。
               * 如果是在阿里云ECS内网访问,无需填写该配置,服务端会根据内网VPC信息智能获取。
               */
              builder.setCredentialProvider(new StaticSessionCredentialsProvider("Instance UserName", "Instance Password"));        
              ClientConfiguration clientConfiguration = builder.build();
              //订阅消息的过滤规则,表示订阅所有Tag的消息。
              String tag = "*";
              FilterExpression filterExpression = new FilterExpression(tag, FilterExpressionType.TAG);
              //初始化PushConsumer,需要绑定消费者分组ConsumerGroup、通信参数以及订阅关系。
              PushConsumer pushConsumer = provider.newPushConsumerBuilder()
                      .setClientConfiguration(clientConfiguration)
                      //设置消费者分组。
                      .setConsumerGroup(consumerGroup)
                      //设置预绑定的订阅关系。
                      .setSubscriptionExpressions(Collections.singletonMap(topic, filterExpression))
                      //设置消费监听器。
                      .setMessageListener(messageView -> {
                          //处理消息并返回消费结果。
                          // LOGGER.info("Consume message={}", messageView);
                          System.out.println("Consume Message: " + messageView);
                          return ConsumeResult.SUCCESS;
                      })
                      .build();
              Thread.sleep(Long.MAX_VALUE);
              //如果不需要再使用PushConsumer,可关闭该进程。
              //pushConsumer.close();
          }
      }                    


      1. 在IDEA中打开已创建的Java工程,在src/main/java路径下创建一个Java类。

      2. 将Java类的内容替换为云消息队列 RocketMQ 版提供的消息发送代码。示例代码如下:

         
        1. 参考下表修改消费者示例代码中的参数值。以下参数仅为示例值,需要修改为您实际使用的参数值。

          参数

          示例

          说明

          endpoints

          rmq-cn-******.cn-hangzhou.rmq.aliyuncs.com:8080

          实例的公网接入点。

          可从云消息队列 RocketMQ 版控制台实例详情页的TCP 协议接入点页签中获取。

          本教程以公网环境接入为例,若您使用VPC网络接入,则接入点需要填写为VPC专有网络接入点。

          topic

          topic_normal

          已创建的Topic的名称,表示消费者需要订阅指定的Topic的消息。

          可从云消息队列 RocketMQ 版控制台的Topic 管理页面查看。

          consumerGroup

          GID_test

          已创建的Group的ID,表示消费者使用该消费者分组订阅指定的Topic。

          可从云消息队列 RocketMQ 版控制台的Group 管理页面查看。

          Instance UserName

          21Vshz0YD9******

          本教程以公网环境接入为例,因此该参数填写为实例用户名。

          可从云消息队列 RocketMQ 版控制台的实例详情页面的运行信息区域查看。

          若使用VPC接入,则无需配置该参数。

          Instance Password

          VrQCx2xr9a******

          本教程以公网环境接入为例,因此该参数填写为实例密码。

          可从云消息队列 RocketMQ 版控制台的实例详情页面的运行信息区域查看。

          若使用VPC接入,则无需配置该参数。

        2. 参数修改完成后,运行消费者示例代码,启动消费者客户端。返回类似如下信息,表示消费者客户端已接入云消息队列 RocketMQ 版服务端。

          此操作为第一次启动消费者,此时生产者还未接入服务端,因此还未获取到消息为正常结果。

        package doc;
        
        import org.apache.rocketmq.client.apis.*;
        import org.apache.rocketmq.client.apis.message.Message;
        import org.apache.rocketmq.client.apis.producer.Producer;
        import org.apache.rocketmq.client.apis.producer.SendReceipt;
        
        
        public class ProducerExample {
            public static void main(String[] args) throws ClientException {
                /**
                 * 实例接入点,从控制台实例详情页的接入点页签中获取。
                 * 如果是在阿里云ECS内网访问,建议填写VPC接入点。
                 * 如果是在本地公网访问,或者是线下IDC环境访问,可以使用公网接入点。使用公网接入点访问,必须开启实例的公网访问功能。
                 */
                String endpoints = "rmq-cn-xxx.{regionId}.rmq.aliyuncs.com:8080";
                //消息发送的目标Topic名称,需要提前在控制台创建,如果不创建直接使用会返回报错。
                String topic = "Your Topic";
                ClientServiceProvider provider = ClientServiceProvider.loadService();
                ClientConfigurationBuilder builder = ClientConfiguration.newBuilder().setEndpoints(endpoints);
                /**
                 * 如果是使用公网接入点访问,configuration还需要设置实例的用户名和密码。用户名和密码在控制台实例详情页获取。
                 * 如果是在阿里云ECS内网访问,无需填写该配置,服务端会根据内网VPC信息智能获取。
                 */
                builder.setCredentialProvider(new StaticSessionCredentialsProvider("Instance UserName", "Instance Password"));
                ClientConfiguration configuration = builder.build();
                /**
                 * 初始化Producer时直接配置需要使用的Topic列表(这个参数可以配置多个Topic),实现提前检查错误配置、拦截非法配置启动。
                 * 针对非事务消息 Topic,也可以不配置,服务端会动态检查消息的Topic是否合法。
                 * 注意!!!事务消息Topic必须提前配置,以免事务消息回查接口失败,具体原理请参见事务消息。
                 */
                Producer producer = provider.newProducerBuilder()
                        .setTopics(topic)
                        .setClientConfiguration(configuration)
                        .build();
                //普通消息发送。
                Message message = provider.newMessageBuilder()
                        .setTopic(topic)
                        //设置消息索引键,可根据关键字精确查找某条消息。
                        .setKeys("messageKey")
                        //设置消息Tag,用于消费端根据指定Tag过滤消息。
                        .setTag("messageTag")
                        //消息体。
                        .setBody("messageBody".getBytes())
                        .build();
                try {
                    //发送消息,需要关注发送结果,并捕获失败等异常。
                    SendReceipt sendReceipt = producer.send(message);
                    System.out.println(sendReceipt.getMessageId());
                } catch (ClientException e) {
                    e.printStackTrace();
                }
            }
        }
      3. 参考下表修改生产者示例代码中的参数值。以下参数仅为示例值,需要修改为您实际使用的参数值。

        参数

        示例

        说明

        endpoints

        rmq-cn-******.cn-hangzhou.rmq.aliyuncs.com:8080

        实例的公网接入点。

        可从云消息队列 RocketMQ 版控制台实例详情页的TCP 协议接入点页签中获取。

        本教程以公网环境接入为例,若您使用VPC网络接入,则接入点需要填写为VPC专有网络接入点。

        topic

        topic_normal

        已创建的Topic的名称,表示生产者向哪个Topic发送消息。

        可从云消息队列 RocketMQ 版控制台的Topic管理页面查看。

        Instance UserName

        21Vshz0YD9******

        本教程以公网环境接入为例,因此该参数填写为实例用户名。

        可从云消息队列 RocketMQ 版控制台的实例详情页面的运行信息区域查看。

        若使用VPC接入,则无需配置该参数。

        Instance Password

        VrQCx2xr9a******

        本教程以公网环境接入为例,因此该参数填写为实例密码。

        可从云消息队列 RocketMQ 版控制台的实例详情页面的运行信息区域查看。

        若使用VPC接入,则无需配置该参数。

      4. 参数修改完成后,运行生产者示例代码,启动生产者客户端发送消息。返回类似如下信息,表示生产者客户端已接入云消息队列 RocketMQ 版服务端并成功发送消息。

         

        1. 在IDEA中打开已创建的Java工程,在src/main/java路径下创建一个Java类。

        2. 将Java类的内容替换为云消息队列 RocketMQ 版提供的消息发送代码。示例代码如下:

           
          package doc;
          
          import org.apache.rocketmq.client.apis.*;
          import org.apache.rocketmq.client.apis.message.Message;
          import org.apache.rocketmq.client.apis.producer.Producer;
          import org.apache.rocketmq.client.apis.producer.SendReceipt;
          
          
          public class ProducerExample {
              public static void main(String[] args) throws ClientException {
                  /**
                   * 实例接入点,从控制台实例详情页的接入点页签中获取。
                   * 如果是在阿里云ECS内网访问,建议填写VPC接入点。
                   * 如果是在本地公网访问,或者是线下IDC环境访问,可以使用公网接入点。使用公网接入点访问,必须开启实例的公网访问功能。
                   */
                  String endpoints = "rmq-cn-xxx.{regionId}.rmq.aliyuncs.com:8080";
                  //消息发送的目标Topic名称,需要提前在控制台创建,如果不创建直接使用会返回报错。
                  String topic = "Your Topic";
                  ClientServiceProvider provider = ClientServiceProvider.loadService();
                  ClientConfigurationBuilder builder = ClientConfiguration.newBuilder().setEndpoints(endpoints);
                  /**
                   * 如果是使用公网接入点访问,configuration还需要设置实例的用户名和密码。用户名和密码在控制台实例详情页获取。
                   * 如果是在阿里云ECS内网访问,无需填写该配置,服务端会根据内网VPC信息智能获取。
                   */
                  builder.setCredentialProvider(new StaticSessionCredentialsProvider("Instance UserName", "Instance Password"));
                  ClientConfiguration configuration = builder.build();
                  /**
                   * 初始化Producer时直接配置需要使用的Topic列表(这个参数可以配置多个Topic),实现提前检查错误配置、拦截非法配置启动。
                   * 针对非事务消息 Topic,也可以不配置,服务端会动态检查消息的Topic是否合法。
                   * 注意!!!事务消息Topic必须提前配置,以免事务消息回查接口失败,具体原理请参见事务消息。
                   */
                  Producer producer = provider.newProducerBuilder()
                          .setTopics(topic)
                          .setClientConfiguration(configuration)
                          .build();
                  //普通消息发送。
                  Message message = provider.newMessageBuilder()
                          .setTopic(topic)
                          //设置消息索引键,可根据关键字精确查找某条消息。
                          .setKeys("messageKey")
                          //设置消息Tag,用于消费端根据指定Tag过滤消息。
                          .setTag("messageTag")
                          //消息体。
                          .setBody("messageBody".getBytes())
                          .build();
                  try {
                      //发送消息,需要关注发送结果,并捕获失败等异常。
                      SendReceipt sendReceipt = producer.send(message);
                      System.out.println(sendReceipt.getMessageId());
                  } catch (ClientException e) {
                      e.printStackTrace();
                  }
              }
          }
        3. 参考下表修改生产者示例代码中的参数值。以下参数仅为示例值,需要修改为您实际使用的参数值。

          参数

          示例

          说明

          endpoints

          rmq-cn-******.cn-hangzhou.rmq.aliyuncs.com:8080

          实例的公网接入点。

          可从云消息队列 RocketMQ 版控制台实例详情页的TCP 协议接入点页签中获取。

          本教程以公网环境接入为例,若您使用VPC网络接入,则接入点需要填写为VPC专有网络接入点。

          topic

          topic_normal

          已创建的Topic的名称,表示生产者向哪个Topic发送消息。

          可从云消息队列 RocketMQ 版控制台的Topic管理页面查看。

          Instance UserName

          21Vshz0YD9******

          本教程以公网环境接入为例,因此该参数填写为实例用户名。

          可从云消息队列 RocketMQ 版控制台的实例详情页面的运行信息区域查看。

          若使用VPC接入,则无需配置该参数。

          Instance Password

          VrQCx2xr9a******

          本教程以公网环境接入为例,因此该参数填写为实例密码。

          可从云消息队列 RocketMQ 版控制台的实例详情页面的运行信息区域查看。

          若使用VPC接入,则无需配置该参数。

        4. 参数修改完成后,运行生产者示例代码,启动生产者客户端发送消息。返回类似如下信息,表示生产者客户端已接入云消息队列 RocketMQ 版服务端并成功发送消息。

         

         

    查看消息消费结果

    消息发送成功后,将运行结果窗口切换到消息订阅运行程序中,会看到返回如下消费结果,您可以根据返回的消息ID在控制台查询消息轨迹。

    image..png

    查询消息轨迹

    1. 登录云消息队列 RocketMQ 版控制台,在左侧导航栏,选择实例列表。

    2. 在顶部菜单栏,选择和试用实例相同的地域。

    3. 在实例列表页面单击试用实例的名称。

    4. 在左侧导航栏单击消息轨迹,然后单击创建查询任务。

    5. 在创建消息轨迹查询任务面板中选择消息所属的Topic、选择查询方式为Message ID 查询、输入在消费结果中获取到的Message ID,然后单击确定创建查询任务。

      image..png
    6. 刷新页面,待查询任务的状态变为查询完成,然后在其操作列单击查询结果。

    7. 在查询结果页面中,单击查询结果列表操作列的消息轨迹。

    8. 您可以在轨迹详情页面查看指定消息在各阶段的详细状态。

      各返回参数的详细信息,请参见轨迹参数说明

    本教程使用的标准版实例只能免费试用1个月。试用期结束后您可以选择释放实例或一键转包年包月,否则超过有效期的部分将会按照按量付费方式进行计费。

    • 如果您无需使用云消息队列 RocketMQ 版,请按照如下操作及时清理和释放资源。

      1. 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表。

      2. 在顶部菜单栏选择试用实例所在的地域,然后在目标试用实例所在的操作列选择更多>释放。

      3. 在弹出的对话框中单击确定。

    • 如果您需要继续使用云消息队列 RocketMQ 版,可以将该试用实例转为包年包月计费类型。

      1. 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表。

      2. 在顶部菜单栏选择试用实例所在的地域,然后在目标试用实例所在的付费类型列选择转包年包月。

      3. 按照界面提示完成购买。

    常用知识点

    问题1:如果使用本地网络访问云消息队列 RocketMQ 版服务,SDK代码中的接入点(endpoints)应该填写哪个?(单选题)

     

    问题2:发送普通消息时,创建的Topic的消息类型是什么?(单选题)

     

    延伸阅读



标签:接入点,RocketM,Topic,实例,消息,公网,Q版,控制台
From: https://www.cnblogs.com/flyingsir/p/17544217.html

相关文章

  • 面试官:使用 RocketMQ 怎么进行灰度发布?
    今天来聊一聊RocketMQ的灰度方案。灰度发布是指在黑与白之间,平滑过渡的一种发布方式。在大流量的系统中,如果一次升级改造范围比较大,或者影响内容不太确定,一般会采用切量的方式进行升级,这样可以减少生产变更带来的影响。如上图,对ServiceA这个服务进行升级,采用灰度发布,先升级Ser......
  • 控制台指令
    Windows控制台指令网络相关查看TCP/IP配置:ipconfig。测试连接:ping,例:ping127.0.0.1。查看端口是否开启:telnet,例:telnet127.0.0.18080。查看系统开放的端口:netstat-an。查看端口使用情况:netstat-aon|findstr"端口号",例:netstat-aon|findstr"1688"结果:其中11356即为......
  • 三、 安装RocketMQ
    RocketMQ的安装包分为两种,二进制包和源码包。点击这里下载ApacheRocketMQ5.1.3的源码包。你也可以从这里下载到二进制包。二进制包是已经编译完成后可以直接运行的,源码包是需要编译后运行的。 这里使用Windows系统安装RocketMQ5.1.3。JAVA版本选择jdk1.8。下载页面是:ht......
  • windows配置RocketMQ并测试发送消息
    https://github.com/alibaba/spring-cloud-alibaba/wiki/RocketMQ下载rocketmq-all-4.9.5-bin-release 必须配置一个RocketMQ路径的环境变量(参考博客的第二个) 配置内容如下,目录在bin的上层   解压,进入解压目录conf,修改broker.conf在该文件中加入两行(建议直接复......
  • 一、 RocketMQ介绍
    一、为什么选择RocketMQ在阿里孕育RocketMQ的雏形时期,将其用于异步通信、搜索、社交网络活动流、数据管道,贸易流程中。随着阿里的贸易业务吞吐量的上升,源自阿里的消息传递集群的压力也变得紧迫。根据阿里的研究,随着队列和虚拟主题使用的增加,ActiveMQIO模块达到了一个瓶颈。阿......
  • 启动tomcat时idea控制台日志乱码的问题
    们知道乱码的产生是由于编码和解码的编码表不一致引起的。如果你在使用idea启动tomcat时控制台乱码了可以通过下面的方式排查第二种在tomcat修改配置文件找到tomcat安装位置,以我的演示E:\Environment\apache-tomcat-9.0.65\conf1.进入打开下面文件 2.进入配置文件修改编码方......
  • RocketMq5.0 任意延迟时间 TimerMessageStore 源码解析
    TimerMessageStore简略介绍延迟队列rmq_sys_wheel_timer指定时间的延迟消息。会先投递到rmq_sys_wheel_timer队列中然后由TimerMessageStore消费队列数据,将数据消费到timerWheel使用时间轮算法,实现秒级任务TimerMessageStore操作的文件store\consumequeue\rmq_sy......
  • centos7安装配置rocketmq
    1、下载地址::https://rocketmq.apache.org/download/ 2、报错:安装rockerMQ报错ERROR:PleasesettheJAVA_HOMEvariableinyourenvironment,Weneedjava(x64)  修改rocketmy的配置文件进入到解压后rocketMQ的bin目录,修改以下三个文件runbroker.sh、runserver.sh、tools.sh修......
  • 聊聊 RocketMQ 主从复制
    提到主从复制,我们可能立马会联想到MySQL的主从复制。MySQL主从复制是MySQL高可用机制之一,数据可以从数据库服务器主节点复制到一个或多个从节点。这篇文章,我们聊聊RocketMQ的主从复制,希望你读完之后,能够理解主从复制的精髓。1同步与异步在RocketMQ的集群模式中,Broke......
  • 聊聊 RocketMQ 主从复制
    提到主从复制,我们可能立马会联想到MySQL的主从复制。MySQL主从复制是MySQL高可用机制之一,数据可以从数据库服务器主节点复制到一个或多个从节点。这篇文章,我们聊聊RocketMQ的主从复制,希望你读完之后,能够理解主从复制的精髓。1同步与异步在RocketMQ的集群模式中,Brok......