1. 程式人生 > 其它 >springboot+rocketmq 快速入門

springboot+rocketmq 快速入門

沒有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