首页 > 其他分享 >Spring Boot 整合 Kafka

Spring Boot 整合 Kafka

时间:2024-08-28 14:52:47浏览次数:3  
标签:String Spring Boot kafka common apache org Kafka public

项目目录结构

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Spring Kafka Starter -->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

kafka-provider

  • application.yml

    server:
      port: 10001
    spring:
      kafka:
        bootstrap-servers: localhost:9092
        producer:
          key-serializer: org.apache.kafka.common.serialization.StringSerializer
          value-serializer: org.apache.kafka.common.serialization.StringSerializer
        consumer:
          key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
          value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
          group-id: test-consumer-group
    
  • service

    @Service
    public class ProviderServiceImpl {
        private static final String TOPIC_NAME = "dragon-topic";
        @Resource
        private KafkaTemplate<String, String> kafkaTemplate;
    
        public String sendMsg(String info) {
            kafkaTemplate.send(TOPIC_NAME,info);
            return "发送成功";
        }
    }
    
    @RestController
    @RequestMapping("/provider")
    @RequiredArgsConstructor
    public class ProviderController {
        private final ProviderServiceImpl providerService;
        @GetMapping
        public String providerApi() {
            return providerService.sendMsg("莫等闲,白了少年头,空悲切。");
        }
    }
    

启动类

@SpringBootApplication
public class ConsumerApp {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApp.class, args);
    }
}

kafka-consumer

  • kafka-listener

    @Component
    public class KafkaListener {
        private static final Logger log = LoggerFactory.getLogger(KafkaListener.class);
        private static final String TOPIC_NAME = "dragon-topic";
    
        @org.springframework.kafka.annotation.KafkaListener(topics = TOPIC_NAME)
        public void receive(String msg) {
            log.info("接收到消息:{}",msg);
        }
    }
    
  • application.yml

    server:
      port: 10002
    spring:
      kafka:
        bootstrap-servers: localhost:9092
        producer:
          key-serializer: org.apache.kafka.common.serialization.StringSerializer
          value-serializer: org.apache.kafka.common.serialization.StringSerializer
        consumer:
          key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
          value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
          group-id: test-consumer-group
    

启动类

@SpringBootApplication
public class ConsumerApp {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApp.class, args);
    }
}

标签:String,Spring,Boot,kafka,common,apache,org,Kafka,public
From: https://www.cnblogs.com/dragon-925/p/18384675

相关文章

  • springsecurity6学习
    1、maven依赖<properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><spring.version>3.2.0</spring.version><commons.versio......
  • spring aop底层源码执行逻辑剖析
    aop动态代理源码剖析aop增强逻辑的执行时机是在initializeBean方法中protectedObjectinitializeBean(StringbeanName,Objectbean,@NullableRootBeanDefinitionmbd){ if(beanName.indexOf("my")>=0){ System.out.println("=============[initializeBean]bean......
  • Spring Boot Web开发实践:请求与响应参数的使用方法
    主要介绍了请求响应的简单参数、实体参数、数组集合参数、日期参数、路径参数等各自的使用方法!!!文章目录前言Postman简单参数原始方式 SpringBoot方式实体参数数组集合参数日期参数 路径参数总结前言主要介绍了请求响应的简单参数、实体参数、数组集合参数......
  • Springboot计算机毕业设计汽车销售管理系统3ytu1
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,员工,汽车分类,汽车品牌,汽车颜色,汽车信息,汽车预订,汽车入库,数据统计,反馈信息开题报告内容一、毕业设计(论文)题目的来源、理论或实际应用意义1.1题目......
  • 基于Spring Boot的企业内管信息化系统的设计与实现
    ......
  • 基于Spring Boot的农事管理系统
    ......
  • kafka如何合理设置broker、partition、consumer数量
    目录1.broker的数量最好大于等于partition数量2.consumer数量最好和partition数量一致3.总结1.broker的数量最好大于等于partition数量一个partition最好对应一个硬盘,这样能最大限度发挥顺序写的优势。一个broker如果对应多个partition,需要随机分发,顺序IO会退化成随机IO。实......
  • 面试官:Kafka中的key有什么用?
    我们在使用Kafka时,最简单、最常用的方式是只设置topic(主题)和value(消息体),如下所示:这样的话获取消息的代码也很简单,如下所示:@KafkaListener(topics="mytopic",groupId="my-group")publicvoidlisten(Stringdata){System.out.println("监听到消息:"+data);}......
  • Kafka安装和使用(Windows)
    下载和安装阿里云镜像下载地址:kafka_2.13-3.6.2.tgz清华大学镜像下载地址:kafka_2.13-3.6.2.tgz下载完成后解压即可,目录如下:配置和使用kafka的部署离不开zookeeper的,所以需要zookeeper。但是从kafka3的版本之后自带了zookeeper,所以不需要我们去考虑zookeeper,只需配置......
  • 探索微服务架构中的动态服务发现与调用:使用 Nacos 与 Spring Cloud OpenFeign 打造高
    1.背景在现代微服务架构中,服务之间的通信与协作是非常重要的。SpringCloudAlibaba提供了一套完整的微服务解决方案,其中包括Nacos用于服务注册与发现,OpenFeign用于声明式服务调用,SpringCloudLoadBalancer用于负载均衡。本文将通过一个简单的电商系统示例,演示如何......