kafka的安装与使用


Kafka是一个分布式发布订阅的消息系统。

基本概念
  • topic(主题),数据所属类别
  • partition(分区),一个topic可以划分为多个partition
    • offset,每个partition都有一个偏移量
    • 副本,是partition的备份,仅用于防止数据丢失,不会被消费者消费。另外,单机版的kafka不能给patition设置副本,因为副本需分布在不同的机器上。
  • broker(kafka服务器)
    kafka集群包含一个或多个服务器,一个服务器就称之为一个broker。
    每个broker用于存储topic中的数据。如果一个topic有多个partition,那么就有多个broker,每个broker用于存储一个partition中的数据,从而维护整个系统的负载均衡。
  • producer,消息的生产者,即数据的发布者。producer把消息发布到topic里,broker接收到消息并把消息追加到topic的partition里。
  • customer,消费者,即数据的接收者。
kafka的安装
  • 官网下载版本:kafka_2.13-2.8.0.tgz
    在这里插入图片描述
  • 将压缩包kafka_2.13-2.8.0.tgz上传至linux服务器的/usr/local目录下
  • 解压kafka_2.13-2.8.0.tgz至当前目录:tar -zxvf kafka_2.13-2.8.0.tgz
    • -x,同--extract,extract files from an archive。
    • -f--force-local,archive file is local even if it has a colon。
    • -xf,extract all files from an archive。
    • -z,同--unzip
    • -v,同--verbose,verbosely list files processed,详细列出。其中, verbosely是冗长的意思。
  • 修改配置文件:config/server.properties
    • broker.id
      broker是kafka集群中的服务器,id则是服务器的唯一标识。
      单机版本中,可以将broker.id可以设置为任意整数,比如broker.id=1
    • log.dirs,kafka的日志目录
      新建目录kafka_log,且与kafka_2.13-2.8.0同目录,将log.dirs设置为/usr/local/kafka_log
kafka的使用
  • 启动ZooKeeper
[root@localhost kafka_2.13-2.8.0]# bin/zookeeper-server-start.sh -daemon config/zookeeper.properties 
  • 启动kafka broker
[root@localhost kafka_2.13-2.8.0]# bin/kafka-server-start.sh config/server.properties 
  • 查看进程
[root@localhost kafka_2.13-2.8.0]# jps
4051 Jps
3398 Kafka
3292 QuorumPeerMain

可以看到有两个进程运行在终端,其中,QuorumPeerMain是ZooKeeper的进程,另一个是Kafka进程。

  • 创建一个topic
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hello-kafka
Created topic hello-kafka.

创建了一个名为hello-kafka的topic,其中,包含一个partition(分区)和一个replication-factor(副本因子)。
注意,config/server.properties中有:

zookeeper.connect=localhost:2181
  • 列出kafka服务器上的topics
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
hello-kafka
  • 启动消费者以接收消息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hello-kafka --from-beginning
  • 启动生产者以发送消息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello-kafka

在这里插入图片描述

  • 查看topic的相关信息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello-kafka
Topic: hello-kafka	TopicId: P-bZ-KwWTuejAyLrnXAMXg	PartitionCount: 1	ReplicationFactor: 1	Configs: 
	Topic: hello-kafka	Partition: 0	Leader: 1	Replicas: 1	Isr: 1
参考文章

kafka的基本操作

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值