Rocket MQ 发送消息

January 1, 2018 · 115 words · One minute

Rocket MQ 发送消息

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

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

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

启动

  • 下载: https://github.com/helloworlde/SpringBoot-RocketMQ.git
  • 修改配置文件:修改application.properties ,填入相应的信息
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

参数:

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

顺序消息 Body

{  
    "body":"{\"name\":\"MQ\",\"type\":\"Rocket\"}",
    "delayTime":30000,
    "key":"key",
    "method":"SYNCHRONOUS",
    "tags":"TAG1,TAG2",
    "topic":"TOPIC",
    "type":"ORDER"
}

延时消息 Body

{  
    "body":"{\"name\":\"MQ\",\"type\":\"Rocket\"}",
    "delayTime":30000,
    "key":"key",
    "method":"ONE_WAY",
    "tags":"TAG1,TAG2",
    "topic":"TOPIC",
    "type":"DELAY"
}

定时消息 Body

{  
    "body":"{\"name\":\"MQ\",\"type\":\"Rocket\"}",
    "key":"key",
    "method":"ASYNCHRONOUS",
    "startDeliveryTime":"2017-09-01 17:40:00",
    "tags":"TAG1,TAG2",
    "topic":"TOPIC",
    "type":"TIMING"
}

返回示例

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

返回参数说明

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