package com.rocketmq.controller.produce;
import com.rocketmq.util.RocketmqSampleUtils;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.nio.charset.StandardCharsets;
import org.slf4j.Logger;
* 支付系统生产者
*/
@Controller
@RequestMapping("/pay")
public class PaySystemProducer {
private static final Logger logger = LoggerFactory.getLogger(PaySystemProducer.class);
@RequestMapping("/produce")
@ResponseBody
public void producePay() {
DefaultMQProducer producer = new DefaultMQProducer("PaySystemProducer");
producer.setNamesrvAddr("100.85.217.111:8200;100.93.3.194:8200");
try {
producer.start();
String[] tags = new String[]{"TagA", "TagB", "TagC", "TagD", "TagE"};
for (int i = 0; i < 10; i++) {
String orderId = "order" + (i % 10);
Message msg = new Message("PayTopic", tags[i % tags.length], "KEY" + i,
("This is pay " + i).getBytes(StandardCharsets.UTF_8));
SendResult sendResult = RocketmqSampleUtils.sendMessage(producer, msg, orderId);
logger.info(sendResult.toString());
}
} catch (Exception e) {
logger.info(e.getMessage());
}
producer.shutdown();
}
}