package com.yiqiniu.easytrans.queue.impl.ons; import java.util.Properties; import javax.annotation.PostConstruct; import javax.annotation.Resource; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.ONSFactory; import com.aliyun.openservices.ons.api.Producer; import com.aliyun.openservices.ons.api.PropertyKeyConst; import com.aliyun.openservices.ons.api.SendResult; import com.yiqiniu.easytrans.config.EasyTransConifg; import com.yiqiniu.easytrans.queue.producer.EasyTransMsgPublishResult; import com.yiqiniu.easytrans.queue.producer.EasyTransMsgPublisher; public class OnsEasyTransMsgPublisherImpl implements EasyTransMsgPublisher { private Producer producer; @Resource private EasyTransConifg config; @PostConstruct private void init(){ Properties properties = new Properties(); properties.put(PropertyKeyConst.ONSAddr, config.getExtendConfig("easytrans.queue.ons.addr")); // 阿里云身份验证,在阿里云服务器管理控制台创建 properties.put(PropertyKeyConst.AccessKey, config.getExtendConfig("easytrans.queue.ons.producer.key")); // 阿里云身份验证,在阿里云服务器管理控制台创建 properties.put(PropertyKeyConst.SecretKey, config.getExtendConfig("easytrans.queue.ons.producer.secrect"));// 此处以公有云生产环境为例 properties.put(PropertyKeyConst.ProducerId, config.getExtendConfig("easytrans.queue.ons.producer.name")); producer = ONSFactory.createProducer(properties); producer.start(); } @Override public EasyTransMsgPublishResult publish(String topic, String tag, String key, byte[] msgByte) { Message message = new Message(topic, tag, key, msgByte); SendResult send = producer.send(message); EasyTransMsgPublishResult easyTransMsgPublishResult = new EasyTransMsgPublishResult(); easyTransMsgPublishResult.setTopic(send.getTopic()); easyTransMsgPublishResult.setMessageId(send.getMessageId()); return easyTransMsgPublishResult; } }