# 消息队列使用方式 ## 引入项目 加入maven的依赖 ```xml com.elab.core elab-mq ${elab.version} ``` ## 属性配置 ```properties # 必填 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 # 消费失败的重试次数 ``` ### 生产者 ```java @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("T-consumer1", "*", key, jsonObject); SendResult send = msgProducerFacade.send(message); System.out.println("发送消息返回结果 : " + send.toString()); } } ``` ### 消费者 ```java 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; } } ```