[Spring Boot]Kafka集成与简单实现

发布于:2024-05-23 ⋅ 阅读:(262) ⋅ 点赞:(0)

简述

实现Spring Boot集成Kafka,并且简单实现生产者与消费者的场景
有关安装kafka可参照往期文章
[Docker]kafka安装

集成

引入Kafka配置

<dependency>
  <groupId>org.springframework.kafka</groupId>
  <artifactId>spring-kafka</artifactId>
</dependency>

配置文件

server:
  port: 19900
spring:
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      auto-offset-reset: latest
      max-poll-records: 100
      max-partition-fetch-bytes: 1000000

设置Kafka消费者

package com.fir.rbac;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;


@SpringBootApplication
public class Application {


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

    @KafkaListener(id = "webGroup", topics = "topic_input")
    public void listen(String input) {
        System.out.println("input value: " + input);
    }
}

向指定主题发送消息

package com.fir.rbac.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;


/**
 * 测试方法
 *
 * @author dpe
 */
@Slf4j
@RestController
public class TestController {


    @Resource
    private KafkaTemplate<Object, Object> template;



    @RequestMapping("/send")
    public void login(String input) {

        this.template.send("topic_input", input);
    }

}

Spring Boot启动应用

启动项目

image.png

调用接口发送消息

image.png

消费者接受消息

image.png


网站公告

今日签到

点亮在社区的每一天
去签到