package producer; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.example.producer.ProducerApplication; import org.example.producer.dto.StudentDTO; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.messaging.Message; import org.springframework.messaging.support.MessageBuilder; import javax.annotation.Resource; @SpringBootTest(classes = ProducerApplication.class) @Slf4j public class ProducerNormalMessageTest { @Resource(name = "extRocketMQTemplate") private RocketMQTemplate extRocketMQTemplate; /** *发送单向消息 */ @Test public void sendOneWay(){ StudentDTO studentDTO = new StudentDTO(); studentDTO.setId("T001"); studentDTO.setName("丽莎"); studentDTO.setAge(12); Message message = MessageBuilder.withPayload(JSON.toJSONString(studentDTO)).setHeader("KEYS", studentDTO.getId()).build(); extRocketMQTemplate.sendOneWay("studentTopic".concat(":ESS"),message); } @Test public void sendOneWayOrderly(){ StudentDTO studentDTO = new StudentDTO(); studentDTO.setId("T005"); studentDTO.setName("里斯"); studentDTO.setAge(12); Message message = MessageBuilder.withPayload(JSON.toJSONString(studentDTO)).setHeader("KEYS", studentDTO.getId()).build(); extRocketMQTemplate.sendOneWayOrderly("studentTopic".concat(":ESS"), message,studentDTO.getId()); } @Test public void syncSendOrderly(){ for (int i=0; i<20; i++){ Message message = MessageBuilder.withPayload("订单".concat("Orderder:"+i)).setHeader("KEYS", i).build(); SendResult sendResult = extRocketMQTemplate.syncSendOrderly("order".concat(":OR"), message, String.valueOf(i)); log.info(sendResult.toString()); } } @Test public void syncSend(){ StudentDTO studentDTO = new StudentDTO(); studentDTO.setId("T002"); studentDTO.setName("张三丰"); studentDTO.setAge(11); Message message = MessageBuilder.withPayload(JSON.toJSONString(studentDTO)).setHeader("KEYS", studentDTO.getId()).build(); SendResult sendResult = extRocketMQTemplate.syncSend("studentTopic".concat(":ESS"), message); log.info(sendResult.toString()); } @Test public void asyncSend(){ StudentDTO studentDTO = new StudentDTO(); studentDTO.setId("T003"); studentDTO.setName("戴莉"); studentDTO.setAge(11); Message message = MessageBuilder.withPayload(JSON.toJSONString(studentDTO)).setHeader("KEYS", studentDTO.getId()).build(); extRocketMQTemplate.asyncSend("studentTopic".concat(":ESS"), message, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { log.info(sendResult.toString()); } @Override public void onException(Throwable throwable) { log.info(throwable.getMessage()); } }); } }