Kafka https://kafka.apache.org/
Apache Kafka是由Apache软件基金会开发的一个开源消息中间件项目,由Scala写成。Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高吞吐、低延迟的平台。—– from wikipedia
Kafka 安装
修改配置文件
先备份
cp /home/ning/kafka/config/server.properties /home/ning/kafka/config/server.properties.bak
再修改
vi /home/ning/kafka/config/server.properties
#全局唯一编号,不能重复
broker.id=0
#用来监听链接的端口,生产者和消费者在此端口建立连接
port=9092
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘IO的线程数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接受套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#运行日志存放的路径
log.dirs=/tmp/kafka-logs
#topic在当前broker上的分片个数
num.partitions=2
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间
log.retention.hours=168
#滚动生成新的segment文件的最大时间
log.roll.hours=168
修改每个服务器上的broker.id
启动集群
kafka-server-start.sh config/server.properties
Kafka常用操作命令
查看当前服务器中的所有topic
bin/kafka-topics.sh --list --zookeeper zk01:2181
创建topic
./kafka-topics.sh --create --zookeeper mini1:2181 --replication-factor 1 --partitions 3 --topic first
删除topic
bin/kafka-topics.sh --delete --zookeeper zk01:2181 --topic test
需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
通过shell命令发送消息
kafka-console-producer.sh --broker-list kafka01:9092 --topic itheima
通过shell消费消息
bin/kafka-console-consumer.sh --zookeeper zk01:2181 --from-beginning --topic test1
查看消费位置
kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper zk01:2181 --group testGroup
查看某个Topic的详情
kafka-topics.sh --topic test --describe --zookeeper zk01:2181