Kafka官方说明不是台详细,但网上也有很多参考,现还是将自己在CentOS7.6上架设生产环境的笔记记录下(持续更新中)。

调优

# vi /etc/sysctl.d/99-kafka.conf

swap

vm.swappiness = 1

dirty page

vm.dirty_background_ratio = 5 vm.dirty_ratio = 70

tcp socket

net.core.rmem_default = 4194304 net.core.wmem_default = 4194304

tcp socket

net.ipv4_tcp_rmem = 4096 65536 4194304 net.ipv4_tcp_wmem = 4096 65536 4194304

other network

net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_max_syn_backlog = 5120 net.core.netdev_max_backlog = 100000

topic管理

通过kafka自带工具实现topic的管理,主要依靠kafka-topic.sh工具实现

列出主题

> kafka-topics.sh --bootstrap-server <kafka_host1>:9092,<kafka_host2>:9092,... --list

删除主题

> kafka-topics.sh --bootstrap-server <kafka_host1>:9092,<kafka_host2>:9092,... --delete --topic <topic_name>

说明:
1.如果Kafka服务配置了delete.topic.enable=true,直接通过命令行删除,未能删除Topic则可以通过zookeeper-client来进行删除。以下是单独使用zookeeper的二进制程序包的说明,并且已经进入bin目录。

# 进入zookeeper命令行客户端
> zkCli.sh -server <zkhost1:2181>[,<zkhost:2181>,...]
# 执行删除topic的操作
] deleteall /brokers/topics/<topic_name> 

2.如果Kafka服务未配置delete.topic.enable=false,直接通过delete命令删除topic,删除时只会将topic标记为“marked for deletion”,然后通过zookeeper-client进行删除是不会删除topic的data.log数据目录的,需要将相应的broker服务器上的log目录下相应的topic目录删除。