Springboot Kafka

本文介绍如何在Spring项目中集成Kafka消息中间件,包括添加依赖、配置参数及使用示例。通过具体代码演示了如何发送和接收消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、添加依赖

      <!-- kafka -->

      <dependency>

         <groupId>org.springframework.kafka</groupId>

         <artifactId>spring-kafka</artifactId>

         <version>1.3.0.RELEASE</version>

      </dependency>

注意:Kafka安装的版本为kafka_2.12-0.11.0.1,所以引入的kafka依赖需要1.3以上版本,这样kafka client才是0.11.0.0

 

2、Kafka配置

#kafka

spring.kafka.bootstrap-servers=192.168.xx.xx:9092

spring.kafka.consumer.group-id=pvs

#key-value序列化反序列化

spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer

spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer

spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

spring.kafka.producer.batch-size=65536

spring.kafka.producer.buffer-memory=524288

 

3、使用例子

 

@Controller

@EnableAutoConfiguration

public class SampleController {

 

    private Logger logger = LoggerFactory.getLogger(SampleController.class);

 

    @Autowired

    private KafkaTemplate<String, String> template;

 

    @RequestMapping("/send")

    @ResponseBody

    String send(String topic, String key, String data) {

        template.send(topic, key, data);

        return "success";

    }

 

    @KafkaListener(id = "t1", topics = {"t1"})

    public void listenT1(ConsumerRecord<?, ?> cr) throws Exception {

        logger.info("{} - {} : {}", cr.topic(), cr.key(), cr.value());

    }

 

    @KafkaListener(id = "t2", topics = {"t2"})

    public void listenT2(ConsumerRecord<?, ?> cr) throws Exception {

        logger.info("{} - {} : {}", cr.topic(), cr.key(), cr.value());

    }

 

浏览器调用:http://localhost:8080/send?topic=t2&key=test1&data=hello122

后台:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值