- Kafka简介
- Kafka是一个分布式的流媒体平台。
- 应用:消息系统、日志收集、用户行为追踪、流式处理。
- Kafka特点 - 高吞吐量、消息持久化、高可靠性、高扩展性。
- Kafka术语
- Broker、Zookeeper
- Topic、Partition、Offset
- Leader Replica 、Follower Replica
Kafka入门
资料1: https://github.com/frank-lam/fullstack-tutorial/blob/master/notes/MicroService/kafka/README.md
kafka配置与启动与命令(Linux): https://github.com/frank-lam/fullstack-tutorial/blob/master/notes/MicroService/kafka/kafka-tutorial-2_%E5%8D%95%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2.md
1、kafka配置文件修改
2、kafka启动
C:\WINDOWS\system32>cd /d D:\JavaWork\kafka_2.12-2.3.0
D:\JavaWork\kafka_2.12-2.3.0>.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
// 再打开一个命令行界面,启动kafka:
D:\JavaWork\kafka_2.12-2.3.0>.\bin\windows\kafka-server-start.bat .\config\server.properties
Kafka 2.11-1.0.0启动报错,连接到zookeeper超时
参数配置
https://www.cnblogs.com/cuishuai/p/7743988.html
Spring整合Kafka
- 引入依赖
- spring-kafka
- 配置Kafka
- 配置server、consumer
- 访问Kafka
- 生产者kafkaTemplate.send(topic, data);
- 消费者
@KafkaListener(topics = {“test”})
public void handleMessage(ConsumerRecord record) {}
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class KafkaTests {
@Autowired
private KafkaProducer kafkaProducer;
@Test
public void testKafka() {
kafkaProducer.sendMessage("test", "你好");
kafkaProducer.sendMessage("test", "在吗");
try {
Thread.sleep(1000 * 10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Component
class KafkaProducer {
@Autowired
private KafkaTemplate kafkaTemplate;
public void sendMessage(String topic, String content) {
kafkaTemplate.send(topic, content);
}
}
@Component
class KafkaConsumer {
@KafkaListener(topics = {"test"})
public void handleMessage(ConsumerRecord record) {
System.out.println(record.value());
}
}