一、下载和启动kafka
启动kafka服务之前要先启动zookeeper,目前kafka的压缩包中是包含zookeeper的
1、从官网下载kafka的压缩包:http://kafka.apache.org/downloads
2、解压下载的压缩包 ,我本地解压后的kafka文件夹放在了E:\keluosi目录下
3、启动zookeeper
E:\keluosi\kafka_2.11-1.1.0\bin\windows>.\zookeeper-server-start.bat ..\..\config\zookeeper.properties
4、启动kafka
E:\keluosi\kafka_2.11-1.1.0\bin\windows> .\kafka-server-start.bat ..\..\config\server.properties
二、创建springboot项目进行整合
消息发送方
1、导入kafka的jar包
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
2、配置application.yml文件
server:
port: 11000
spring:
kafka:
bootstrap-servers: localhost:9092
3、编写发送消息的代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class KafkaController {
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
@RequestMapping("/send")
public String send(String name) {
kafkaTemplate.send("mytopic", name);
return name;
}
}
消息接收方
1、导入kafka的jar包
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
2、配置application.yml文件
server:
port: 11001
spring:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: mygroup
3、编写发送消息的代码
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
/**
* @author: keluosi@bicitech.cn
* @review:
* @date: 2018/9/14
*/
@Component
public class MyConsumer {
@KafkaListener(topics = "mytopic")
public void listen(ConsumerRecord<?,String> record) {
String value = record.value();
System.out.println(value);
System.out.println(record);
}
}
进行测试
1、输入url地址,访问消息发送方
2、观察后端控制台打印