pom:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
下载地址:Apache Kafka
下载后解包的文件:
在命令行模式下切换到 bin/windows目录启动服务
一、启动zookeeper-server
二、启动kafka-server
三、创建kafka-topic主题
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic “主题名称”
四、配置
spring:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: order
五、 消息生产者
package com.songdian.service.impl;
import com.songdian.service.SendSmsService;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;
@Service
public class KafkaMessageServiceImpl implements SendSmsService {
@Autowired
private KafkaTemplate<String,String> kafkaTemplate;
@Override
public void sendMessage(String id) {
System.out.println("订单已加入队列===============" + id);
kafkaTemplate.send("songdian",id);
}
@Override
public String doMessage() {
return null;
}
}
六:消息消费者,我们直接定义监听器
package com.songdian.listener;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
@Component
public class KafkaMessageListener {
@KafkaListener(topics = "songdian")
public void onMessage(ConsumerRecord<String,String> record){
System.out.println("已完成短信业务:" + record.value());
}
}