kafka 学习笔记

windows kafka 基本命令

在windows 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 yangt

4 查看topic

bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

5 查看消费情况

bin\windows\kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group test-consumer-group

spring 集成 kafka

bootstrap.yml 配置

kafka:
    bootstrap-servers: 127.0.0.1:9092
    consumer:
      group-id: test-consumer-group
      enable-auto-commit: false   # 提交模式 false是手动 true是自动
      auto-commit-interval: 100ms
      properties:
        session.timeout.ms: 15000
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      auto-offset-reset: earliest
    listener:
      # listener类型
      # single | batch
      type: single
      # 已消费offset提交模式(仅在enable-auto-commit=false时才需明确指定)
      # 单记录  | 批量   | 超时  | 超过消费数量 | 超时或超过数量 | 手动提交(ack)后同BATCH | 手动立即提交
      # RECORD | BATCH | TIME | COUNT      | COUNT_TIME   | MANUAL                | MANUAL_IMMEDIATE
      # https://docs.spring.io/spring-kafka/docs/current/reference/html/#committing-offsets
      ack-mode: MANUAL
    producer:
      retries: 0 #若设置大于0的值,客户端会将发送失败的记录重新发送
      batch-size: 16384 #当将多个记录被发送到同一个分区时, Producer 将尝试将记录组合到更少的请求中。这有助于提升客户端和服务器端的性能。这个配置控制一个批次的默认大小(以字节为单位)。16384是缺省的配置
      buffer-memory: 33554432 #Producer 用来缓冲等待被发送到服务器的记录的总字节数,33554432是缺省配置
      key-serializer: org.apache.kafka.common.serialization.StringSerializer #关键字的序列化类
      value-serializer: org.apache.kafka.common.serialization.StringSerializer #值的序列化类

消费者代码

@Component
public class KafkaConsumerListener {
    // 加个注解即可实现监听消费
    @KafkaListener(topics = "yangt")
    public void receive(String message, Acknowledgment ack) {

        System.out.println("我是消费者,收到了来自生产者发送的消息:" + message);
        ack.acknowledge();
    }
}

生产者代码

此处只是测试

@Controller
@RequestMapping("/kfk")
public class ProducerController {
    @Autowired
    KafkaTemplate<String, String> kafka;



    @RequestMapping("/register")
    @ResponseBody
    public String register(String talk) {
        System.out.println("我是生产者我要发送消息:" + talk);
        kafka.send("yangt", talk);
        //kafka.send(String topic, @Nullable V data) {
        return "OK";
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值