kafka再相识

本文详细介绍了Kafka中的关键术语,包括生产者、消费者、主题、分区、偏移量和副本等。同时,讨论了消费方式,包括队列和发布订阅模式。此外,提到了Kafka的四个核心API及其用途。还深入解析了Kafka的配置参数,如副本数量、分区数以及如何动态调整分区。最后,提供了动态增加副本的步骤,包括创建主题的脚本和执行过程。
摘要由CSDN通过智能技术生成

kafka相关术语
生产者:producer
消费者:consumer
主题:topic
实例:broker
消息:record,由一个key、一个value和时间戳构成
分区:partition,topic有多个partion
偏移量:offset,分区partion中的每个消息record有一个偏移量offset
副本:分区的备份
消费方式:队列和发布订阅,队列是一组消费者从服务器读取消息,一条消息只有其中一个消费者来消费;发布订阅是消息被广播给所有消费者,一条消息可以被所有消费者进行消费。
kafka有四个核心API:

  • 应用程序使用 Producer API 发布消息到1个或多个topic(主题)中。
  • 应用程序使用 Consumer API 来订阅一个或多个topic,并处理产生的消息。
  • 应用程序使用 Streams API 充当一个流处理器,从1个或多个topic消费输入流,并生产一个输出流到1个或多个输出topic,有效地将输入流转换到输出流。
  • Connector API 可构建或运行可重用的生产者或消费者,将topic连接到现有的应用程序或数据系统。例如,连接到关系数据库的连接器可以捕获表的每个变更。

在java代码或者python代码中,是直接发送生产者消息。topic的名字是动态生成的(当kafka发现topic不存在时,会自动创建),那么它的partitions和replication-factor的数量是由服务端决定的。因为kafka集群有3个节点,所有需要改成3个,kafka 1.0版本配置文件默认没有default.replication.factor=x

offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
num.partitions=1
default.replication.factor=3

参数解释:
offsets.topic.replication.factor 用于配置offset记录的topic的partition的副本个数
transaction.state.log.replication.factor 事务主题的复制因子
transaction.state.log.min.isr 覆盖事务主题的min.insync.replicas配置
num.partitions 新建Topic时默认的分区数
default.replication.factor 自动创建topic时的默认副本的个数

动态增加副本
1创建test主题的脚本test.json
{
“version”: 1,
“partitions”: [
{
“topic”: “test”,
“partition”: 0,
“replicas”: [
1,
2,
3
]
},
{
“topic”: “test”,
“partition”: 1,
“replicas”: [
1,
2,
3
]
},

]
}
2执行
bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file test.json --execute
3验证
bin/kafka-topics.sh --zookeeper localhost:2181 --topic test --describe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值