java实现阿里云rocketMQ消息的发送与消费(http协议sdk)

本文档介绍了如何使用Java通过HTTP协议的SDK实现阿里云RocketMQ的消息发送与消费。首先,详细阐述了准备工作的步骤,包括在阿里云官网申请RocketMQ、Topic和Group ID,并引入必要的SDK依赖。接着,展示了创建常量类存储公共参数、发送和订阅消息的代码示例。此外,还解决了日志输出级别问题,提供了配置logback.xml以简化日志打印的方法。最后,给出了代码运行的效果展示和完整代码下载链接。
摘要由CSDN通过智能技术生成

一、准备工作

登录阿里云官网,先申请rocketMQ,再申请Topic、Group ID,然后就是参考阿里云的JAVA SDK进行编程实现。

环境要求:
安装JDK 1.6或以上版本
安装Maven
安装Java SDK

参照 阿里云 官方文档,来一步一步操作。
文档提供的SDK有TCP和Http协议,这里使用HTTP协议来实现rocketMQ消息的发送与消费。

在这里插入图片描述

二、代码实现

调用HTTP协议的SDK收发普通消息

1.添加依赖

创建Springboot项目,添加 SDK依赖:

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!--aliyun mq sdk-->
 <dependency>
     <groupId>com.aliyun.mq</groupId>
     <artifactId>mq-http-sdk</artifactId>
     <version>1.0.2</version>
 </dependency>

注意:aliyun mq sdk的版本信息,请参见版本说明

2.创建一个常量类存放公共参数

package com.example.rocketdemo.config;

/**
 * @author qzz
 */
public class MqConfigParams {
   

    /**
     * 你的topic
     */
    public static final String TOPIC = "你的topic";
    /**
     * 消息标签  *:代表全部
     */
    public static final String TAG = "你的tag";
     /**
     * 你的Group_ID
     */
    public static final String GROUP_ID = "你的Group_ID";
    /**
     *你的accessKey
     */
    public static final String ACCESS_KEY = "你的accessKey";
    /**
     *你的secretKey
     */
    public static final String SECRET_KEY = "你的secretKey";
    /**
     * 实例ID
     */
    public static final String INSTANCE_ID = "你的实例ID";
    /**
     *设置HTTP协议客户端接入点,进入消息队列RocketMQ版控制台实例详情页面的接入点区域查看
     */
    public static final String HTTP_ENDPOINT = "http接入点地址";
}

3.调用HTTP协议的SDK 发送普通消息

package com.example.rocketdemo.util;

import com.aliyun.mq.http.MQClient;
import com.aliyun.mq.http.MQProducer;
import com.aliyun.mq.http.model.TopicMessage;
import com.example.rocketdemo.config.MqConfigParams;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;

/**
 * 生产 阿里云 RocketMQ 消息
 * @author qzz
 */
@Slf4j
public class AliyunMessageProducerTest {
   
    public static void main(String[] args) {
   
        MQClient mqClient = new MQClient(
                // 设置HTTP协议客户端接入点,进入消息队列RocketMQ版控制台实例详情页面的接入点区域查看。
                MqConfigParams.HTTP_ENDPOINT,
                // AccessKey ID,阿里云身份验证,在阿里云RAM控制台创建。
                MqConfigParams.ACCESS_KEY,
                // AccessKey Secret,阿里云身份验证,在阿里云RAM控制台创建。
                MqConfigParams.SECRET_KEY
        );

        // 消息所属的Topic,在消息队列RocketMQ版控制台创建。
       
阿里云RocketMQ是一种分布式消息中间件,它支持发布/订阅模型,常用于大规模、高并发的消息处理场景。关于发送延迟消息RocketMQ提供了一种特殊模式——顺序消息(Order Message),可以满足需要消息按序到达消费者的需求,包括延时送达。 以下是使用Java SDK发送延迟消息的一个简单示例: ```java import com.alipay.cloud.smgk.Client; import com.alipay.cloud.smgk.message.Message; public class DelayMessageDemo { public static void main(String[] args) { // 创建客户端实例 Client client = new Client("your-access-key-id", "your-access-key-secret", "your-endpoint"); try { // 发送延迟消息 Message message = new Message( "queueName", // 消息队列名 "tag", // 分区标签 "delayKey", // 延迟键,用于控制消息何时投递 "your-delay-time-in-second", // 指定的延迟时间(单位秒) "delayMessageBody" // 消息内容 ); // 设置生产者属性,如序列化方式等 message.setProducerGroup("producer-group"); message.setSerializerClassName("com.alibaba.rocketmq.common.serializer.StringSerializer"); // 发送延迟消息 client.sendMessage(message); System.out.println("延迟消息已成功发送RocketMQ"); } catch (Exception e) { e.printStackTrace(); } finally { client.shutdown(); } } } ``` 在这个例子中,你需要替换`your-access-key-id`、`your-access-key-secret`和`your-endpoint`为你实际的访问密钥、访问密钥秘密以及服务地址。同时,记得设置合适的延迟时间和序列化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值