Kafka相关问题
Kafka有哪几个部分组成
生产者、消费者、topic、group、partition
kafka的group
1)定义:即消费者组是 Kafka 提供的可扩展且具有容错性的消费者机制。
在Kafka中,消费者组是一个由多个消费者实例构成的组。同一个组下的每个实例都配置有相同的组ID,被分配不同的订阅分区。
当某个实例挂掉的时候,其他实例会自动地承担起它负责消费的分区。
kafka如何保证数据不丢失
1)producer端如何保证数据不丢失acks = 0 ,它只是把消息发送到缓存中,而缓存什么时候被提交到broker端并不关心。可以用这种配置来收集日志
acks = 1(默认值) 生产者发送消息之后,只要分区的leader副本成功写入消息,那么它就会收到来自服务端的成功响应。不成功会重新发送,
但如果learder崩溃则数据丢失
acks = all或-1,生产者在发送消息之后,需要leader向fllow同步完数据之后,才返回ack成功。
如果不成功并将消息缓存起来,等异常恢复后再次发送
2)consumer端如何保证数据不丢失
设置从哪个位置开始消费:auto.offset.reset = earliest(最早) /latest(最晚)
设置一定时间内是否自动提交:enable.auto.commit = true/false(默认true)
Kafka如何解决重复消费问题
kafka如何提高吞吐量
生产者端
消费者端
1增加分区和消费者数量
2 如问题4
Kafka的Leader选举机制
https://b23.tv/0N8dfn5 看前3分半就可以
Kafka高吞吐低延时的原因
1)使用操作系统页缓存,内存速度快命中概率高
2)Kafka不直接参与IO操作,而是交给操作系统
3)采用追加写入的方式,摒弃了缓慢的磁盘随机读写操作
4)使用sendfile零拷贝技术加强网络间的数据传输
consumer group的位移提交机制
->https://blog.csdn.net/qq_41049126/article/details/1113118161)
老版本0.9之前,消费者的位移信息时是通过zookeeper来保存的,当消费者重启时,会自动从zookeeper中获取位移数据,从上次消费的地方继续消费。2)新版本中将位移数据向正常消息一样提交到_comsumer_offsets,用于保存位移信息。
Kafka集群中的第一个Consumer程序启动时,Kafka会自动创建位移主题
位移提交方式:自动提交位移和手动提交位移 enable.auto.commit
Kafka的删除位移主题策略:压缩,即保存同一key的最后一条log
Kafka中consumer group的Rebalance何时触发
->https://blog.csdn.net/yxhzj/article/details/82525906 4 Rebalance
1)consumer group有成员变更时,2)订阅主题发生变更时,3)订阅主题分区发生变更时
reblance的分配方法:1)range 2)round-robin
consumer group内管理是通过coordinator(协调者)进行。
7.消费者组与Broker之间的交互
consumer采用pull(拉)模式从broker中读取数据。
在Kafka中,ZooKeeper的作用是什么?
1)负责成员管理:broker节点的注册、注销
2)Controller选举
3)存放集群元数据:存放Topic、分区的说有数据保存
最新文章
- CLR垃圾回收的设计
- XGBoost参数调优完全指南(附Python代码)
- JavaScript中的CSS属性对照表
- jquery堆栈与队列
- 苹果 Mac OS X Yosemite 10.10 新功能特性总结 - 扁平化、主打跨设备的无缝连通性
- syntax error near unexpected token `then'
- UVALive 5990 Array Diversit
- 为Mac自带的Apache配置PHP和虚拟机
- MySQL如何修改root密码
- OBS实现直播解决方案【html实现直播】
- AJAX的简洁写法
- 《Effective Objective-C 2.0》摘要
- Python内置函数(58)——input
- 分享一下在aspx页面弹框的设置代码
- day 21 - 2 练习
- mysql <;=>; null 问题
- C# Web开发中弹出对话框的函数[转载]
- SQL语法基础之CREATE语句
- php 公共方法Util
- ReactNative系列组件用法(一)
热门文章
- Java 根据模板导出PDF
- 记一次Mybatis-Plus动态分表DynamicTableNameInnerInterceptor里无法动态替换表名的坑
- ASR6601:国产化lora SOC芯片兼容SX1262/SX1268
- jwt二次加密失败原因(Bad “options.expiresIn“ option the payload already has an “exp“ property.)
- linux合并bilibili下载的blv视频
- ipmitool for windows下载网址
- 牛客java基础语法在线编程-知识点小结(待完善)
- OSPF配置知识总结3(多区域配置)
- shell mv cp image in parallel 多线程解压parallel
- flink 版本