liukx@elab 11d3c6e0e7 新增消息队列功能 5 years ago
..
src 11d3c6e0e7 新增消息队列功能 5 years ago
README.md 6ee5bb9774 新增功能: 6 years ago
pom.xml ddff71cb48 新增消息队列功能 5 years ago

README.md

消息队列使用方式

引入项目

加入maven的依赖

<dependency>
    <groupId>com.elab.core</groupId>
    <artifactId>elab-mq</artifactId>
    <version>${elab.version}</version>
</dependency>

属性配置

# 必填
elab.mq.AccessKey=                 
elab.mq.SecretKey= 
elab.mq.NAMESRV_ADDR=http://MQ_INST_1819241776271348_Bak3xjk0.mq-internet-access.mq-internet.aliyuncs.com:80 
# 非必填
elab.mq.GROUP_ID=GID-producer1  # 默认GID-运行环境-项目名称
elab.mq.SendMsgTimeoutMillis=5000 # 设置发送超时时间,单位毫秒
elab.mq.SuspendTimeMillis=100 # 顺序消息消费者失败进行重试前的等待时间(单位毫秒)
elab.mq.MaxReconsumeTimes=20 #  消费失败的重试次数

生产者


@Autowired
private IMsgProducerFacade msgProducerFacade;

public void send(){
    // 发送消息
    // topic / tag / 全局唯一编号 / 消息内容
   JSONObject jsonObject = new JSONObject();
    jsonObject.put("xxx", "哈哈");
    jsonObject.put("sss", "ggg");
    for (int i = 0; i < 10; i++) {
        String key = RandomUtils.randomString(10);
        MessageModel message = new MessageModel<Map>("T-consumer1", "*", key, jsonObject);
        SendResult send = msgProducerFacade.send(message);
        System.out.println("发送消息返回结果 : " + send.toString());
    }
}

消费者

import com.aliyun.openservices.ons.api.Action;
import com.aliyun.openservices.ons.api.ConsumeContext;
import com.aliyun.openservices.ons.api.Message;
import com.elab.mq.listener.AbstractMessageListener;
import org.springframework.stereotype.Component;

/**
 * 消费者
 *
 * @author : liukx
 * @time : 2019/5/15 - 14:04
 */
@Component
public class ConsumerServiceImpl extends AbstractMessageListener {

    @Override
    public String topic() {
        return "T-consumer1";
    } 

    @Override
    public Action consume0(Message message, ConsumeContext consumeContext) {
        System.out.println("---------------------消费成功------>>" + message.toString());
        return Action.CommitMessage;
    }
}