HelloWood

Rocket MQ 发送消息

2018-01-01

Rocket MQ 发送消息

@(消息队列)[RocketMQ, 消息]

使用阿里巴巴的Rocket MQ发送消息的SpringBoo项目

  • 使用之前请现在阿里云申请消息队列并创建消息TOPIC、Producer和Consumer

启动

  • 下载: https://github.com/helloworlde/SpringBoot-RocketMQ.git

  • 修改配置文件:修改application.properties ,填入相应的信息

    1
    2
    3
    4
    5
    6
    spring.rocketmq.ONSAddresses=消息队列地址
    spring.rocketmq.accessKey=AccessKey
    spring.rocketmq.secretKey=SercetKey
    spring.rocketmq.topic=TOPIC
    spring.rocketmq.producerId生产者
    spring.rocketmq.consumerId=订阅者
  • 编译:gradle build

  • 启动:gradle bootrun


API

请求URL:

  • http://localhost:8080/sendMessage

请求方式:

  • POST

参数:

参数名 必选 类型 说明
body String 消息所携带的数据,可以是对象的JSON串
key String 32位key
tags String Message Tag,用于过滤订阅者过滤消息
method String 消息发送方式,共有三种:同步发送:SYNCHRONOUS,异步发送:ASYNCHRONOUS, 单向发送:ONE_WAY ,默认使用同步发送方式发送消息
type String 消息类型,共有三种:顺序消息:ORDER,延时消息:DELAY,定时消息:TIMING,默认发送顺序消息
delayTime long 消息发送延时时间,单位是毫秒
startDeliveryTime String 定时消息发送时间,必须是yyyy-MM-dd HH:mm:ss格式

顺序消息 Body

1
2
3
4
5
6
7
8
9
{  
"body":"{\"name\":\"MQ\",\"type\":\"Rocket\"}",
"delayTime":30000,
"key":"key",
"method":"SYNCHRONOUS",
"tags":"TAG1,TAG2",
"topic":"TOPIC",
"type":"ORDER"
}

延时消息 Body

1
2
3
4
5
6
7
8
9
{  
"body":"{\"name\":\"MQ\",\"type\":\"Rocket\"}",
"delayTime":30000,
"key":"key",
"method":"ONE_WAY",
"tags":"TAG1,TAG2",
"topic":"TOPIC",
"type":"DELAY"
}

定时消息 Body

1
2
3
4
5
6
7
8
9
{  
"body":"{\"name\":\"MQ\",\"type\":\"Rocket\"}",
"key":"key",
"method":"ASYNCHRONOUS",
"startDeliveryTime":"2017-09-01 17:40:00",
"tags":"TAG1,TAG2",
"topic":"TOPIC",
"type":"TIMING"
}

返回示例

  • 同步方式发送时返回消息信息,异步和单向方式返回值为空
    1
    2
    3
    4
    {
    "messageId": "0A00004541843624AEC09C820EAD0000",
    "topic": "Topic"
    }

返回参数说明

参数名 说明
messageId 所发送消息ID
topic 所发送消息 Topic