springBoot中进行封装使用
依赖
<!--rocketmq-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot</artifactId>
<version>2.2.1</version>
</dependency>
application.yml 可以按照需求进行mq相关配置
rocketmq:
name-server: localhost:9876
producer:
group: myGroup
max-message-size: 4096
send-message-timeout: 6000
retry-times-when-send-failed: 2
city:
company:
logo: dong
server:
port: 9000
provider :通过RocketMQTemplate就可以调用相关发送MQ的方法
@Controller
@RestController
@RequestMapping("/provider")
public class ProviderController{
@Autowired
private RocketMQTemplate rocketMQTemplate;
@Autowired
private MybatisPlusLearnService mybatisPlusLearnService;
@GetMapping("/one")
public void one(){
List<MybatisPlusLearn> list =mybatisPlusLearnService.list();
rocketMQTemplate.syncSend("one_topic",list);
}
}
当请求接口后,就会向one_topic中发送相关信息,消费者就会收到相关消息
consumer
@Component
@ConditionalOnProperty(prefix = "city.company", name="logo" , havingValue = "dong")
@RocketMQMessageListener(topic = "one_topic" ,consumerGroup ="one_group",consumeThreadMax = 4)
public class ConsumerOne implements RocketMQListener<MessageExt> {
@Override
public void onMessage(MessageExt messageExt) {
String msg = new String(messageExt.getBody());
System.out.println(msg);
}
}