AliYun RocketMQ Spring Book Edition
Support function:
- Three modes of sending ordinary messages: synchronous, asynchronous and one-way
- Subscribe to Message Cluster, Broadcast
- Send and receive sequential messages
- Transaction messages
- Delay message
- receive and receive timing messages
Delay message and timing message: In the official case, delayed news is much the same as regular news, essentially ordinary news. If delay message and timing message are needed, it is recommended to use timing task (timing task scheduling platform) To achieve the purpose of delay or timing.
<!--Adding dependencies to pom. XML-->
<dependency>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<groupId>com.github.thierrysquirrel</groupId>
<version>2.0.2-RELEASE</version>
</dependency>
## application.properties
thierrysquirrel.access-key= #The Access Key you created in the AliYun Account Management Console for authentication
thierrysquirrel.secret-key= #The SecretKey you created in the AliYun Account Management Console for authentication
thierrysquirrel.name-srv-addr= #Set up TCP protocol access point and get it from console
@SpringBootApplication
@EnableRocketMQ
public class DemoApplication{
public static void main(String[] args){
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
@RocketMessage(groupID = "GID_common")
public class Common {
@GetMapping("/commonA")
@CommonMessage(topic = "commonA", tag = "commonA",messageSendType = MessageSendType.SEND)
public String h() {
return "commonA";
}
@GetMapping("/commonB")
@CommonMessage(topic = "commonB", tag = "commonB",messageSendType = MessageSendType.SEND_ASYNC)
public String hh() {
return "commonB";
}
@GetMapping("/commonC")
@CommonMessage(topic = "commonC", tag = "commonC",messageSendType = MessageSendType.SEND_ONE_WAY)
public String hhh() {
return "commonC";
}
}
@RestController
@RocketMessage(groupID = "GID_order")
public class Order {
@GetMapping("/order")
@OrderMessage(topic = "order",tag = "order")
public String order() {
return "order";
}
}
@RestController
@RocketMessage(groupID = "GID_transaction")
public class Transaction {
@GetMapping("/transaction")
@TransactionMessage(topic = "transaction",tag = "transaction")
public String transaction() {
return "transaction";
}
}
@RestController
@RocketMessage(groupID = "GID_delayed")
public class Delayed {
@GetMapping("/delayed")
@CommonMessage(topic = "delayed", tag = "delayed",startDeliverTime = 10)
public String delayed() {
return "delayed";
}
}
@RocketListener(groupID = "GID_message")
public class Delayed {
@MessageListener(topic = "message",tag = "message")
public void delayed(String message) {
return "message";
}
}
@RocketListener(groupID = "GID_message")
public class Delayed {
@MessageListener(topic = "message",tag = "message", orderConsumer = true)
public void delayed(String message) {
return "message";
}
}