windows安装启动kafaka及spring boot集成kafka简单示例

本文档详细介绍了如何在Windows上下载并启动Kafka,包括启动Zookeeper和Kafka服务,创建及查看Topic,以及使用命令行工具进行消息生产和消费。接着展示了在SpringBoot项目中集成Kafka的步骤,包括配置YML文件和编写生产端测试代码。通过这个过程,读者可以学习到Kafka的基本操作和SpringBoot应用中消息队列的使用。
摘要由CSDN通过智能技术生成

1、kafka下载

在官网下载http://kafka.apache.org/downloads  我下载的是kafka_2.12-2.7.0.tgz版本。

2、windows启动kafka命令

下载成功后解压到电脑指定目录,我解压的目录是 D:\work\software\kafka_2.12-2.7.0。

里面自带有zookeeper、以及配置文件 server.properties(里面有地址、ip等配置信息),本地简单版本都默认就行了。

运行cmd进入到D:\work\software\kafka_2.12-2.7.0目录,然后执行以下命令。注意启动zookeeper后不要关闭窗口,在新开一个cmd窗口启动kafka

1、启动zookeeper: bin\windows\zookeeper-server-start.bat config\zookeeper.properties

2、启动kafka:bin\windows\kafka-server-start.bat config\server.properties

3、创建topic:bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test  (test是名字,可自行定义)

4、查看topic:bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

5、启动生产端:bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test     (新开窗口方便测试)

6、启动消费端:bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test--from-beginning    (新开窗口方便测试)

7、本地测试;在生产端输入信息,消费端都能收到。

3、spring boot集成kafka生产端

1、创建springboot项目,引入kafka。下面是maven,spring boot版本用的是2.3.1.RELEASE

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

2、配置yml

  kafka:
    bootstrap-servers: 127.0.0.1:9092
    listener:
      missing-topics-fatal: false
    consumer:
      enable-auto-commit: true
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      retries: 0
      properties:
          linger:
              ms=0:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

3、编写测试生产端

    @Autowired
    private KafkaTemplate<String, Object> kafkaTemplate;

    @GetMapping(value = "/kafka/{name}")
    @ResponseBody
    public CoreResData kafka(@PathVariable("name") String name) {
        LOGGER.debug("进入kafka测试." + name);
        kafkaTemplate.send("test", "my is:" + name).addCallback(new ListenableFutureCallback<SendResult<String, Object>>() {
            @Override
            public void onFailure(Throwable throwable) {
                LOGGER.info("发送失败.");
                throwable.getMessage();
            }

            @Override
            public void onSuccess(SendResult<String, Object> stringObjectSendResult) {
                LOGGER.info(stringObjectSendResult.getProducerRecord().value().toString());
                LOGGER.info("发送成功..");

            }
        });
        return CoreResData.resSuccess();
    }

在浏览器输入对应的地址后,消费端就能收到信息。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值