使用学生表通过rocketmq完成增加学生功能 生产者:从浏览器获取学生信息将学生信息保存到mq中 controller-->接受学生信息--->调用service 通过service将学生信息保存到mq中 10001-张三-13-男 消费者:监听mq,一旦mq中有学生的注册信息,将学生的注册信息增加到数据库中 代码
时间: 2024-04-15 10:32:14 浏览: 17
以下是一个简单的示例代码,演示如何使用RocketMQ实现增加学生功能:
生产者(Producer)部分:
```java
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;
public class StudentProducer {
public static void main(String[] args) throws Exception {
// 创建生产者
DefaultMQProducer producer = new DefaultMQProducer("student_producer_group");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.start();
// 从浏览器获取学生信息,这里假设获取到的信息为"10001-张三-13-男"
String studentInfo = "10001-张三-13-男";
// 将学生信息保存到MQ中
Message message = new Message("student_topic", "student_tag", studentInfo.getBytes());
producer.send(message);
// 关闭生产者
producer.shutdown();
}
}
```
消费者(Consumer)部分:
```java
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;
public class StudentConsumer {
public static void main(String[] args) throws Exception {
// 创建消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("student_consumer_group");
consumer.setNamesrvAddr("127.0.0.1:9876");
consumer.subscribe("student_topic", "student_tag");
// 注册消息监听器
consumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
for (MessageExt msg : msgs) {
// 获取学生注册信息
String studentInfo = new String(msg.getBody());
// 将学生注册信息解析并增加到数据库中
String[] studentData = studentInfo.split("-");
String studentId = studentData[0];
String studentName = studentData[1];
int studentAge = Integer.parseInt(studentData[2]);
String studentGender = studentData[3];
// 在这里编写将学生信息增加到数据库的代码。
System.out.println("Successfully added student to database: " + studentInfo);
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
});
// 启动消费者
consumer.start();
}
}
```
以上代码仅为示例,您需要根据实际情况进行修改和扩展。请确保RocketMQ的相关依赖已添加到项目中,并且RocketMQ的服务正常运行。