Kafka服务器可以接受最大的信息量是多少
100w字节
Kafka中ZooKeeper是什么,是否可以脱离ZK独立运行
zk是一个开放源码的高性能协调服务,用于kafka的分布式应用
不可以,不可以越过ZK直接联系kafka broker,一旦ZK停止工作,它就不能服务客户端的请求
zk主要用于集群中不同节点之间的通信,在kafka中,他被用于提交偏移量,因此节点失效了,可以从它之前提交的偏移量获取,此外,还有leader检测,分布式同步,配置管理,识别新节点,节点实时状态等功能
如何提高远程用户吞吐量
如果用户位于与broker不同的数据中心,则可能需要调优socket缓冲区的大小,以对长网络延迟进行摊销
在数据生成过程如何保证一次性语义
有两种方法
- 每个分区使用一个单独的写入器,每当发现一个网络错误,检查该分区中的最后一条消息,查看最后一次写入是否成功
- 在消息中包含一个主键(UUID或者其他),并在用户中进行反复制
broker什么时候离开ISR?
ISR是一组与leaders完全同步的消息副本,也就是说ISR中包含所有提交的消息,遇到故障,一个副本从leader中脱离出来,将会从ISR中删除.
Kafka为什么需要复制
确保任何已经发布的消息不会丢失,可以在机器错误,程序错误或者软件升级中使用
如果副本在ISR中停留很长时间表明什么
表明跟踪器无法像在leader收集数据那样快速获取数据
如果首选的副本不在ISR中会发生什么?
控制器将无法将leadership转移到首选的副本
请说明Kafka 的消息投递保证(deliveryguarantee)机 制以及如何实现?
Kafka支持三种消息投递语义
-
至多一次:消息可能会丢失
-
至少一次:消息可能会重复
-
精准一次:消息不会丢失和重复
分为三个方向进行实现:分别是生产者,broker,消费者三个方面
生产者:
-
ack机制
-
- 0不关心响应
-
- 1默认的,等待leader确认信息
- -1(all)全部确认
-
retries重试机制----默认为0,不重试
-
幂等性:
-
- 操作多次的结果和操作一次的结果是一样的(enable.idempotence=true)
- PID
- Snum
- 保证我们分区的精准一次性
-
(全局)事务:read–process–write(kafka–程序–kafka)
broker集群
- 分区机制针对topic进行分区–不同分区
- 副本机制
消费者
自己手动提交 存储在外部介质中 比如mysql
-
如何保证Kafka消息有序
只能保证在一个partition中消息被某个consumer消费时是顺序的,实际上无法保证全局有序,除非只有一个partition
kafka为什么能进行高吞吐
Kafka的设计是把所有消息都写到速度低容量大的硬盘中,换取更加强大的存储能力.但是实际上使用硬盘并没有带来过多的性能损失,kafka主要使用了:零拷贝,页缓存,日志追加.牵扯到Linux系统级别的缓存优化和通讯优化
本文围绕Kafka展开,探讨了服务器可接受最大信息量、ZooKeeper作用及独立性、提高远程用户吞吐量方法等问题。还涉及数据生成一次性语义保证、broker离开ISR情况、消息投递保证机制、消息有序性及高吞吐原因等关键内容。
1162

被折叠的 条评论
为什么被折叠?



