springboot+rocketmq 快速入門
阿新 • • 發佈:2022-03-25
沒有rocketmq的參考:
https://www.cnblogs.com/qq3245792286/p/16045989.html
來一個空maven專案:
springboot-rocketmq
pom.xml
<properties>
<nacos.version>1.0.1</nacos.version>
<spring-boot-dependencies.version>2.3.0.RELEASE</spring-boot-dependencies.version>
<spring-cloud-dependencies.version>Hoxton.SR5</spring-cloud-dependencies.version>
<spring-cloud-alibaba-dependencies.version>2.2.1.RELEASE</spring-cloud-alibaba-dependencies.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
子工程:rocketmq-product-service
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- <version>2.3.12.RELEASE</version>-->
</plugin>
</plugins>
</build>
application.yml
server:
port: 8082
rocketmq:
name-server: 49.235.127.115:9876
producer:
group: my-producer-group
logging:
file:
path: /usr/log/mqproductservice/mqproductservice.log
level:
root: INFO
com.anran.projectmanage.mapper: DEBUG
controller:
package com.jyc.controller;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
@RestController
@RequestMapping("/mq")
public class MqMessageController {
private static final Logger log = LoggerFactory.getLogger(MqMessageController.class);
@Value("${server.port}")
private String port;
@Autowired
private RocketMQTemplate rocketMQTemplate;
@RequestMapping("/convertAndSend/{id}")
public String convertAndSend(@PathVariable int id) {
System.out.println(rocketMQTemplate);
rocketMQTemplate.convertAndSend("first-topic","你好,Java旅途 "+id);
return "ok--"+port+" id= "+id;
}
@RequestMapping("/send")
public String send() {
for(int i=0;i<100;i++){
rocketMQTemplate.convertAndSend("first-topic","你好,Java旅途 "+i);
}
return new Date().toString()+ "----" +port ;
}
@GetMapping("/test")
public String test(){
return "test--"+port;
}
@GetMapping("/send/{id}")
public String test(@PathVariable int id){
return "test--"+port+ " id= "+id;
}
}
package com.jyc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author jianyongchao
* @date: 2022-03-24 11:25:12
* @company: tianbo
* @description:
*/
@SpringBootApplication
public class RocketMqProductApp {
public static void main(String[] args) {
SpringApplication.run(RocketMqProductApp.class,args);
}
}
子工程:rocketmq-consumer-service
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- <version>2.3.12.RELEASE</version>-->
</plugin>
</plugins>
</build>
application.yml
server:
port: 9082
#rocketmq 相關配置
rocketmq:
name-server: 49.235.127.115:9876
producer:
group: my-producer-group
logging:
file:
path: /usr/log/mqproductservice/mqproductservice.log
level:
root: INFO
com.anran.projectmanage.mapper: DEBUG
啟動:
@SpringBootApplication
public class RocketMqConsumerApp {
public static void main(String[] args) {
SpringApplication.run(RocketMqConsumerApp.class,args);
}
}
package com.jyc.listener;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
/**
* @author jianyongchao
* @date: 2022-03-24 14:02:24
* @company: tianbo
* @description:
*/
@Component
@RocketMQMessageListener(topic = "first-topic",consumerGroup = "my-consumer-group")
@Slf4j
public class Consumer implements RocketMQListener<String> {
@Override
public void onMessage(String s) {
log.info(s);
}
}
http://localhost:8082/mq/convertAndSend/16