kafka相关命令&&生产者基础

topic

启动目录:

 topic核心

 查看所有主题:bin/kafka-topics.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092 --list

 创建topic:bin/kafka-topics.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092  --topic first --create --partitions 1 --replication-factor 3

查看topic:bin/kafka-topics.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092  --topic first --describe

 Leader:3 (3节点为leader)

修改分区数(分区数只能增加):bin/kafka-topics.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092  --topic first --alter --partitions 3

 product

生产数据:bin/kafka-console-producer.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092  --topic first

consumer

消费数据:bin/kafka-console-consumer.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092 --topic first

 消费历史数据 bin/kafka-console-consumer.sh -bootstrap-server 192.168.96.129:9092,192.168.96.130:9092,192.168.96.131:9092 --topic first --from-beginning

 FAQ:

1 分区数为啥只能增加???(减少后报错)

 2 不能通过命令的方式修改副本数(其他方式可以-->json文件并执行副本修改计划)

生产者原理:

 retries:重试次数默认值:int最大值

 NetClient:与broker数一致

 生产者异步发送:

  1 普通异步:本地代码访问虚拟机 close超时,且consumer未收到信息

   解决办法:

 2 回调异步

 3 同步发送

    get()

 FAQ:

       1 多个分区。客户端为啥只往一个partation发送消息?

生产者_分区

分区的好处:

 分区策略:

1 默认分区器:DefaultPartitioner

 demo

2 自定义分区策略

 生产者_提高生产者吞吐量

 什么时候需要把RecordAccumulator设置64M. 当分区数比较大的时候。多个batch.size运行,导致缓冲区满。

 数据可靠性:

ack 0 1 -1 分析

 ISR:Leader维护了一个动态的in-sync replica set (ISR),意为和Leader保持同步的Follower+Leader集合(leader:0, isr:0,1,2)如果Follow长时间未向Leader发送通信请求或同步数据,则该Follower将被踢出ISR。该事件阈值由replica.lag.time.max.ms参数设定,默认30s

demo

 可靠性总结:(-1 有重复数据风险)

官方文档:

数据重复性:

 幂等性原理:(kafka幂等性只能保证在单分区、单会话【pid】内数据不重复)

精确依次(Exactly once) =  幂等性+至少一次(ack=-1 + 分区副本数>=2 + ISR最小副本数>=2)

 ​​​

 生产者事务:(开启事务,必须开启幂等性

 

生产经验-数据有序:

                a 单分区内有序 (有条件)

                b 多分区 无序(有序要在consumer端统一排序-spark等处理)

生产经验-数据乱序:NetworkClient 缓存队列可能乱序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值