安装包下载:http://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz
http://kafka.apache.org/
http://kafka.apachecn.org/
(已经安装好了zookeeper集群)
修改broker.id、listeners、zookeeper.connet
broker.id必须保证不重复,zookeeper为集群地址
配置修改完成,启动服务
日志文件
启动遇到问题:原因:broker.id重复,listeners配置错误
java.lang.IllegalArgumentException: Error creating broker listeners from '192.168.179.112://:9092': No security protocol defined for listener 192.168.179.112
Configured broker.id 1 doesn't match stored broker.id 0 in meta.properties
原因:tmp/kafka-logs/meta.properties和server.properties的broker.id不一致
Failed to acquire lock on file .lock in /tmp/kafka-logs. A Kafka instance in another process or thread is using this directory.
解决办法:删除目录tmp/kafka-logs或者修改server.properties中的log.dirs地址
启动成功
查看zookeeper
Kafka启动时在zookeeper上注册的节点信息
cluster, controller, controller_epoch, brokers, zookeeper, admin, isr_change_notification, consumers, latest_producer_id_block, config
controller – 控制节点
brokers – kafka集群的broker信息 。
consumer
基本操作
kafka-console-consumer.sh创建消费者
kafka-console-producer.sh创建生产者
创建一个topic:> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
当前topic列表
启动一个producer发送一条消息topic:
启动一个consumer,接收一条消息
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Mytopic
Partitions 1 :表示创建1个分区,个数没有限制。在每台机器的/tmp/kafka-logs中可以看到Mytopic-0
replication-factor 1:表示的是高可靠性副本数,默认情况下是1,交叉备份
sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic test33
多个分区,服务器间交叉备份,备份副本的好处是当一台机器宕机后消息并不会完全丢失