ToB企服应用市场:ToB评测及商务社交产业平台

标题: Kafka 下载安装及使用总结 [打印本页]

作者: 花瓣小跑    时间: 2024-11-29 17:48
标题: Kafka 下载安装及使用总结
1. 下载安装

官网下载地址:Apache Kafka
下载对应的文件

上传到服务器上,解压
  1. tar -xzf kafka_2.13-3.7.0.tgz
复制代码
目次结果如下
  1. ├── bin
  2. │   └── windows
  3. ├── config
  4. │   └── kraft
  5. ├── libs
  6. ├── licenses
  7. └── site-docs
复制代码
官方文档:Apache Kafka
kafka 有两种启动方式,ZooKeeper 和 KRaft,这里接纳 KRaft 的方式,使用 kraft 目次下的设置文件
  1. config
  2. ├── connect-console-sink.properties
  3. ├── connect-console-source.properties
  4. ├── connect-distributed.properties
  5. ├── connect-file-sink.properties
  6. ├── connect-file-source.properties
  7. ├── connect-log4j.properties
  8. ├── connect-mirror-maker.properties
  9. ├── connect-standalone.properties
  10. ├── consumer.properties
  11. ├── kraft
  12. │   ├── broker.properties
  13. │   ├── controller.properties
  14. │   └── server.properties
  15. ├── log4j.properties
  16. ├── producer.properties
  17. ├── server.properties
  18. ├── tools-log4j.properties
  19. ├── trogdor.conf
  20. └── zookeeper.properties
复制代码
修改 server.properties 文件
   
  初始化集群,先天生一个 UUID
  1. ./bin/kafka-storage.sh random-uuid
复制代码
再实验下令,使用天生的 UUID 完成集群初始化
  1. ./bin/kafka-storage.sh format -t thCDFveGRleJro7zTaOOGA -c ./config/kraft/server.properties
复制代码
然后启动 Kafka
  1. ./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties
复制代码
2. Spring Boot 集成

2.1 引入依赖

  1. <dependencies>
  2.         <dependency>
  3.             <groupId>org.springframework.boot</groupId>
  4.             <artifactId>spring-boot-starter-web</artifactId>
  5.         </dependency>
  6.         <dependency>
  7.             <groupId>org.springframework.kafka</groupId>
  8.             <artifactId>spring-kafka</artifactId>
  9.             <version>3.1.4</version>
  10.             <exclusions>
  11.                 <exclusion>
  12.                     <groupId>org.apache.kafka</groupId>
  13.                     <artifactId>kafka-clients</artifactId>
  14.                 </exclusion>
  15.             </exclusions>
  16.         </dependency>
  17.         <dependency>
  18.             <groupId>org.apache.kafka</groupId>
  19.             <artifactId>kafka-clients</artifactId>
  20.             <version>3.7.0</version>
  21.         </dependency>
  22. </dependencies>
复制代码
2.2 设置文件

  1. spring:
  2.   kafka:
  3.     bootstrap-servers: 127.0.0.1:9092
  4.     consumer:
  5.       group-id: fable-group
复制代码
2.3 生产者

使用 KafkaTemplate 实现消息的生产
  1. import org.springframework.beans.factory.annotation.Autowired;
  2. import org.springframework.kafka.core.KafkaTemplate;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. @RestController
  6. public class ProducerController {
  7.     private final KafkaTemplate<String, String> kafkaTemplate;
  8.     @Autowired
  9.     public ProducerController(KafkaTemplate<String, String> kafkaTemplate) {
  10.         this.kafkaTemplate = kafkaTemplate;
  11.     }
  12.     @GetMapping("/send/message")
  13.     public String sendMessage() {
  14.         kafkaTemplate.send("test", "Hello, Kafka!");
  15.         return "Message sent successfully";
  16.     }
  17. }
复制代码
2.4 消费者

添加 @KafkaListener 注解,监听消息
  1. import org.apache.kafka.clients.consumer.ConsumerRecord;
  2. import org.springframework.kafka.annotation.KafkaListener;
  3. import org.springframework.stereotype.Service;
  4. @Service
  5. public class ConsumerService {
  6.     @KafkaListener(topics = "test", groupId = "fable-group")
  7.     public void listen(ConsumerRecord<String, String> consumerRecord) {
  8.         System.out.println("Received message: " + consumerRecord.value());
  9.     }
  10. }
复制代码
2.5 启动类

添加 @EnableKafka 注解
  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.SpringBootApplication;
  3. import org.springframework.kafka.annotation.EnableKafka;
  4. @SpringBootApplication
  5. @EnableKafka
  6. public class FableApplication {
  7.     public static void main(String[] args) {
  8.         SpringApplication.run(FableApplication.class, args);
  9.     }
  10. }
复制代码
2.6 测试

访问 /send/message 接口,可以看到控制台打印出接收到的消息
  1. Received message: Hello, Kafka!
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4