kafka 文档学习

brokers

topics
一个topic可以有多个分区,每一个分区位于一个broker上.
每个topic的多个partitions 都有一个称为leader的server,用于处理分区的读写请求,
同时有0到多个followers ,用于分区备份,如果leader失败,其中任一followers变为leader.

producers
向topics发送数据,可以进行负载均衡,也可以定义分区函数进行分发(通过消息中的关键字,不同关键字的消息分发至不同的分区)

customer
某个consumer可以成为某个partition的确定consumer,并且每个customer按存储顺序消费数据
同一个partition中的数据是有序的,如果要保证整topic中的消息有序,可以一个topic设置一个partition

同一个partition的数据只能固定的发往某一个consumer组中的某一个确定的consumer

topic参数 replication-factor为N,备份server的个数为N个

启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka服务
bin/kafka-server-start.sh config/server.properties
创建topic
如下: 一个日志副本,一个分区,topic名称为test
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看topic list
bin/kafka-topics.sh --list --zookeeper localhost:2181

可以配置broker,当向不存在的topic发送数据时,broker可以自动创建相应的topic

创建producer发送消息
(input from files or standard input and send the messges out to the kf cluster,each line will be sent as a separate message)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

启动customer消费消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

多节点集群
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
...

----server.config---------
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2

broker.id是每一个服务在kaf集群中的唯一标识
不同的broker要避免 port和logdir重叠

查看topic的配置
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topics1
--info--
Topic:my-replicated-topics1    PartitionCount:1    ReplicationFactor:3    Configs:
    Topic: my-replicated-topics1    Partition: 0    Leader: 0    Replicas: 0,2,1    Isr: 0,2,1

PartitionCount 分区数
ReplicationFactor 副本服务数
Partition 分区编号
Leader 分区读写请求服务编号
replicas 给定partition备份的列表,无论活着与否,是否为leader
Isr 同步的副本,副本列表的子集,当前活着并可以被leader联系到

测试kaf的容错性,杀掉leader节点0,follower节点将自动升为leader
看到杀掉0后,leader节点成了2
xyang@xyang-Latitude-E5440:~/kafka_2.11-0.8.2.2$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topics1
Topic:my-replicated-topics1    PartitionCount:1    ReplicationFactor:3    Configs:
    Topic: my-replicated-topics1    Partition: 0    Leader: 2    Replicas: 0,2,1    Isr: 2,1


你可能感兴趣的:(kafka)