术语,指令
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic topic1
partitions 3
是在topic
下创建3个分区,replication-factor 2
是任意一个分区复制到2个broker上,防止某一个broker挂掉数据丢失。partition
,topic
和log
的关系
topic
是文件夹,partition
是topic
下的子文件夹,log
在partition
中,信息保存在log中。更多内容详见三者关系- 查看代理。
>bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
第一行是所有分区的摘要,下面每行是每个分区的信息。leader
是负责该分区所有读写操作的节点,即某个broker。 每个节点都是随机选择的部分分区的领导者。replicas
是复制分区日志的节点列表,包括leader和被动复制的节点。isr
是一组同步replicas
,是replicas
的子集。表示这些节点,即broker,可以访问到该分区。
Kafka Streams
创建kafka stream
- stream application两个要素:
topology
(拓扑结构)和properties
(streams配置) properties
必须的配置参数:application.id
&bootstrap.servers
- Tip :application更新时,
application.id
应该改变。命名方式推荐:name+version,如:my-app-v1.0.0
- Tip :application更新时,
windowing
Q&A
- Q:stream的拓扑结构中,sink node写回kafka topic是怎么体现的?(官网代码没看出来)
- A:stream.to( )可以将流写回到kafka