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、分区的说有数据保存
Kafka相关问题的更多相关文章
- 简单封装kafka相关的api
一.针对于kafka版本 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>ka ...
- kafka相关文章引用
kafka相关内容说明: Kafka压缩 Kafka端到端审计 kafka数据可靠性深度解读 Kafka发送超过broker限定大小的消息时Client和Broker端各自会有什么异常? Kafka之 ...
- kafka相关问题总结
一直在使用kafka,遇到过很多问题,总结一下 很多人对比kafka和AMQP的时候,都会强调kafka会丢数据,感觉好像只要用kafka就会丢数据一样,从而排斥使用kafka,亦或者在使用的过程中, ...
- Kafka相关面试题及答案
Kafka相关面试题及答案 1. Kafka中的ISR.AR又代表什么? ISR:与leader保持同步的follower集合 AR:分区的所有副本 2. Kafka中的HW.LEO等分别代表什么? ...
- kafka相关应用
一.kafka官网地址 http://kafka.apache.org 下载地址: http://kafka.apache.org/downloads.html 二.版本 0.9.0.1 is the ...
- Kafka相关内容总结(存储和性能)
Kafka消息的存储 Kafka的设计基于一种非常简单的指导思想:不是要在内存中保存尽可能多的数据,在需要时将这些数据刷新(flush)到文件系统,而是要做完全相反的事情.所有数据都要立即写入文件系统 ...
- Kafka相关内容总结(概念和原理)
说明 主要内容是在网上的一些文章中整理出来: 加粗的字体是比较重要的内容,部分是自己的经验和理解: 整理的目的主要是为了方便查阅: 为什么需要消息系统 解耦: 在项目启动之初来预测将来项目会碰到什么需 ...
- kafka相关资料
先来说一下Kafka与RabbitMQ的对比: RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上. kafka是Linkedin于20 ...
- kafka相关业务必会操作命令整理
参考:https://kafka.apache.org 服务相关命令 1.启动/停止zk > bin/zookeeper-server-start.sh config/zookeeper.pro ...
- kafka 相关命令 偏移重置
kafka官方文档 https://kafka.apache.org/documentation.html#quickstart kafka 安装文档 https://www.jianshu.com/ ...
随机推荐
- Jmeter学习:插件
第三方插件官方下载网址:https://jmeter-plugins.org/install/Install/ 第三方插件官方文档网址:https://jmeter-plugins.org/wiki/ ...
- qt5 windeployqt.exe 部署后的程序,运行时仍然报错的问题 (无法定位程序输入点 _ZdlPvj)
首先,注意自己编译执行程序所用的Qt版本: 上图 QTDIR 其次,部署后的执行程序运行时需要 libgcc_s_dw2-1.dll ,从对应的 QT目录拷一个. 最后,要在Qt自己的命令行下运行 w ...
- linux下influx客户端使用
influxdb-client 通过 sudo apt-cache search influx 找到了一个客户端工具 influxdb-client - command line interface ...
- Kubernetes DevOps CD工具对比选型
目录 Kubernetes DevOps CD工具对比选型 一.Flux 二.ArgoCD 三.Jenkins X 四.方案比较 Kubernetes DevOps CD工具对比选型 一.Flux 1 ...
- spring 使用@Async注解实现异步调用
1.先定义一个事件,该类继承 ApplicationEven的抽象类 import org.springframework.context.ApplicationEvent; public class ...
- linux清除恶意程序流程-kdevtmpfsi清除
TOP命令查看发现kdevtmpfsi进程跑满CPU, 处理如下: 解决过程 1.清除被新增的用户名和密码# 找到账户ID和权限组都是0跟root同级别的和不认识的, 删掉保存. more /va ...
- GPT-3介绍
参考:https://en.wikipedia.org/wiki/GPT-3 Generative Pre-trained Transformer 3(GPT-3)是一个自回归语言模型,于2020年发 ...
- java面试准备基础篇
1.Java中常用关键字和用途 synchronized: 加锁 transient 不参与序列化和反序列化 volatile 保证其他线程可见性,不保证原子性,禁止指令重排 2.hashCode() ...
- WebApi EF Core 2.1 Code First 设置导航属性,外键
Nuget: Microsoft.AspNetCore.All Microsoft.EntityFrameworkCore//Include 导航属性在此空间 Microsoft.EntityFram ...
- 做文件上传功能时,dubbo对MultipartFile文件传输时,一个bug:Fail to decode request due to: RpcInvocation
三月 22, 2019 2:37:27 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() fo ...