术语总结
消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。
主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。
消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。
生产者:Producer。向主题发布新消息的应用程序。
消费者:Consumer。从主题订阅新消息的应用程序。
消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。
重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。
为什么kafka不提供对folllower的读操作
1.Kafka,它的主要场景还是在消息引擎而不是以数据存储的方式对外提供读服务
2.Kafka副本机制使用的是异步消息拉取,因此存在leader和follower之间的不一致性
3.实际上社区正在考虑适当引入一些读写分离方案,还在讨论中
kafka版本
版本号:
大 + 小 + patch
0.7版本:
只有基础消息队列功能,无副本;打死也不使用
0.8版本:
增加了副本机制,新的producer API;建议使用0.8.2.2版本;不建议使用0.8.2.0之后的producer API
0.9版本:
增加权限和认证,新的consumer API,Kafka Connect功能;不建议使用consumer API;
0.10版本:
引入Kafka Streams功能,bug修复;建议版本0.10.2.2;建议使用新版consumer API
0.11版本:
producer API幂等,事物API,消息格式重构;建议版本0.11.0.3;谨慎对待消息格式变化
1.0和2.0版本:
Kafka Streams改进;建议版本2.0;