核心功能:高性能的消息发送和高性能的消息消费。
Kafka设计初衷就是为了解决互联网公司超大量级数据的实时传输。
在启动kafka之前需要首先启动zookeeper服务器(zookeeper服务器为kafka提供协调服务的工具),在kafka内置提供了一个zookeeper服务器以及一系列相关的管理脚本。
启动zookeeper和kafka的脚本的在KAFKA_HOME/bin目录下。
(1)使用内置zookeeper,并且启动,在KAFKA_HOME目录下执行
./bin/zookeeper-server-start.sh config/zookeeper.properties
观察到0.0.0.0/0.0.0.0:2181字样,表明zookeeper已经成功在端口2181上启动了
INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
(2)然后启动kafka
./bin/kafka-server-start.sh config/server.properties
想要在后台运行kafka,只需要在启动命令中加入-daemon,或者使用nohup….&。其实-daemon的作用就是以nohup…&的方式启动broke,因此两者的效果是一样的。
./bin/kafka-server-start.sh -daemon config/server.properties
控制台输出结尾处的“[KafkaServer id=0] started”表示kafka服务启动成功。启动broker之后,用户查看启动日志以确保broke启动成功。服务器日志通常保存在kafka安装目录的logs子目录下,名字是server.log
INFO Kafka version : 1.1.1 (org.apache.kafka.common.utils.AppInfoParser)INFO Kafka commitId : 8e07427ffb493498 (org.apache.kafka.common.utils.AppInfoParser)
INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
启动kafka之后,默认的服务端口是9092。
(3)创建一个主题topic用于消息发送和接收。
创建topic,指定一个分区,并且每个分区都指定一个副本
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test --partitions 1 --replication-factor 1
观察到如下信息表示创建成功
Created topic "test".
Topic操作
查看topic列表
/bigdata/salut/components/kafka/bin/kafka-topics.sh --list --zookeeper localhost
查看全部的topic信息
/bigdata/salut/components/kafka/bin/kafka-topics.sh --describe --zookeeper localhost
查看指定topic信息
/bigdata/salut/components/kafka/bin/kafka-topics.sh --describe --zookeeper localhost --topic topicName
删除指定topic
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic topicName
出现如下信息,表明该topic被成功的标记为“待删除”,至于kafka是否会被真正删除取决于broker端参数delete.topic.enable。该参数设置为true,表明kafka默认允许删除topic。1.0.0之前的版本默认为false,即运行了上述命令,kafka也不会删除该topic。
Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.