#创建一个test的topic
bin/kafka-topics.sh --zookeeper 【zookeeper server:port】 --create --topic test --replication-factor 1 --partitions 1
partitions分区数
(1). partitions :分区数,控制topic将分片成多少个log。可以显示指定,如果不指定则会使用broker(server.properties)中的num.partitions配置的数量
(2). 虽然增加分区数可以提供kafka集群的吞吐量、但是过多的分区数或者或是单台服务器上的分区数过多,会增加不可用及延迟的风险。因为多的分区数,意味着需要打开更多的文件句柄、增加点到点的延时、增加客户端的内存消耗。
(3). 分区数也限制了consumer的并行度,即限制了并行consumer消息的线程数不能大于分区数
(4). 分区数也限制了producer发送消息是指定的分区。如创建topic时分区设置为1,producer发送消息时通过自定义的分区方法指定分区为2或以上的数都会出错的;这种情况可以通过alter –partitions 来增加分区数。
replication-factor副本
1 . replication factor 控制消息保存在几个broker(服务器)上,一般情况下等于broker的个数。
2. 如果没有在创建时显示指定或通过API向一个不存在的topic生产消息时会使用broker(server.properties)中的default.replication.factor配置的数量
查看topic属性
bin/kafka-topics.sh --zookeeper zk1:2181 --describe --topic topicname
第一行,列出了topic的名称,分区数(PartitionCount),副本数(ReplicationFactor)以及其他的配置(Config.s)
Leader:1 表示为做为读写的broker的编号
Replicas:表示该topic的每个分区在那些borker中保存
Isr:表示当前有效的broker, Isr是Replicas的子集
修改topic
增加分区数
bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic my_topic_name--partitions 40
增加配置
bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic my_topic_name --config flush.messages=1
删除配置
bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic my_topic_name --delete-config flush.messages=1
使用kafka的监控来查看
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk 【zookeeper server:port】 \
--port 8089 \
--refresh 10.seconds \
--retain 1.days
使用customer来查看收到的数据
./kafka-console-consumer.sh -zookeeper 【zookeeper server:port】 --from-beginning --topic test
1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
2、Kafka 删除topic的命令是:
./bin/kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】
如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion
你可以通过命令来查看所有topic
./bin/kafka-topics --zookeeper 【zookeeper server:port】 --list
此时你若想真正删除它,可以如下操作:
(1)登录zookeeper客户端:命令:
./bin/zookeeper-client
(2)找到topic所在的目录:
ls /brokers/topics
(3)找到要删除的topic,执行命令即可,此时topic被彻底删除。
rmr /brokers/topics/【topic name】
另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:
ls /admin/delete_topics/【topic name】
如果你删除了此处的topic,那么marked for deletion 标记消失
转载请注明出处: http://www.julyme.com/20170119/66.html
打赏一个呗~~(微信)
Julyme
感觉还行吧。
Julyme的IT技术分享