kafka-hello world--笔记

springboot集成kafka参考:SpringBoot集成kafka全面实战_Felix-CSDN博客_springboot集成kafka

一下为我自己理解的几个名词的理解,如有错误的地方欢迎指出改正;

名称含义
topic主题,可以区分不同业务;
分区kafka中主题的分布式存储策略;
生产者发送消息时,可以指定分区或key,或者使用自定义分区策略;
生产者将消息发送给kafka服务器,服务器根据主题分区及策略将消息分别发物理防止于不同的分区中;
分区副本数据文本及备份

数据备份,
问题:是每个分区的数据都备份相应的分数吗?

--是的

key        key标识,生产者可以指定key,kafka服务器正对相同的key会把消息分到相同的分区
生产者

消费者/

消费者ID

可以指定消费者ID,不指定则自动生成;唯一;
消费者组

广播和单播(轮播)的区分点;

如消费者不指定消费组,则属于默认消费组;

广播:指定消费者属于不同的消费组;

单播/轮播:指定消费者为相同的消费组;

        
brokerkafkaServer/brokerID

测试问题:

        1、不同消费者监听不同/相同的分组下相同的分区->分区中有的消息,被监听不同组的消费者消费;(在其他资料上看到,同一个主题下的分区,每个分区只能被一个消费者消费,难道不是强制约束?因为在相同消费组下消费相同分区,就等于重复消费的概念,和不同分组的广播的一样的,但感觉有点畸形。TODO)

        

服务搭建:

windows版本:

        参考自:windows10下Kafka环境搭建_tianmanchn的博客-CSDN博客_kafka windows安装

        问题:kafka启动报log问题可以使用kafka_2.12-2.8.1版本,使用其他几个版本都会有这个问题;

       windows下kafka常用命令参考:

                windows下kafka常用命令行_高亮博客-CSDN博客_kafka windows 命令

                删除命令修复:kafka-topics.bat --zookeeper localhost:2181 --delete --topic topic_name

                删除命令:如果topic没有使用过则会被彻底删除,如果之前使用过则会被标记为删除状态,并不会彻底删除

        问题:

                1:如果删除了topic(标记为删除)则再启动是会报错,参考:

Kafka报错ERROR Shutdown broker because all log dirs in ... have failed - 一介桃白白 - 博客园

                2:如果使用一下方式在windows版本下创建topic时,分区和副本数量太多会报错

@Configuration
public class KafkaInitialConfiguration {
    // 创建一个名为testtopic的Topic并设置分区数为8,分区副本数为2
    @Bean
    public NewTopic initialTopic() {
        return new NewTopic("testtopic-1",1, (short) 1 );
    }

    // 如果要修改分区数,只需修改配置值重启项目即可
    // 修改分区数并不会导致数据的丢失,但是分区数只能增大不能减小
    @Bean
    public NewTopic updateTopic() {
        return new NewTopic("testtopic-2",1, (short) 1 );
    }
}

                3、如果在项目中有一下代码,也会直接创建topic;

 ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(TOPIC_TEST, obj);

linux版本:TODO

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值