首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kafka的简单介绍

初入大数据行业,需要熟悉的东西非常多,所以有将近半年的时候没有写过文章了。最近用到Kafka,简单研究了一下,将这些Kafka的使用方法记录一下,以供大家参考。

Kafka介绍

Kafka常常用于构建实时数据管道和流应用。它可以水平扩展,有容错机制,异常快速,并在上千家公司使用。

Kafka有三个关键技术

发布和订阅消息

以容错持久的方式存储记录流

在此过程中处理记录流

Kafka主要有四类APIs

生产者接口:让应用程序将一个或者多个记录流发布到Kafka主题

消费者接口:让应用程序从Kafka订阅和处理一个或者多个主题

流接口:让应用程序充当流处理器,从一个或者多个主题中消耗输入流,并转换成一个或者多个输出主题,从而将输入流有效的转换成输出流

连接器接口:允许构建和运行可重复使用的生产者或消费者,将Kafka主题连接到现有的应用程序或数据系统

主题

主题是Kafka的一个抽象概念,主题往往有多个订阅者。对于每一个主题,Kafka会维护一个分区日志,架构图如下:

分区

分区是一个逻辑概念,每个分区中的数据都是有序的、不可变的记录序列。分区中的每个记录都被分配一个偏移量,用来唯一的标识分区中的记录。

生产者只能往分区中追加数据,消费者可以从任何位置获取数据。消费者可以设置成旧的一个偏移量,获取旧得数据;也可以设置新的偏移量,跳过某些数据。

分区中数据的保存时间可以自由控制,假设设置数据保留两天,两天内任意时间点的数据都可以获取到。分区往往也是并行的一个单位,可以方便的并行处理其中的数据。

分组

消费者可以被分为不同的组,不同组的消费者可以收到相同的数据,相同组的消费者肯定收到的都是不同的数据。

Kafka下载安装启动

Kafka的安装和使用非常简单,按照下面步骤一步步做即可:

下载

Kafka的下载路径如下:

https://kafka.apache.org/downloads

也可以用下面命令直接下载:

wget http://mirror.bit.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz

安装

执行下面命令解压安装包:

tar zxvf kafka_2.11-1.1.0.tgz

安装Kafka之前需要先安装Zookeeper,并且修改config/server.properties中的zookeeper.connect配置参数,设置成Zookeeper的连接路径,例如:

localhost:2181

启动

Kafka的启动非常简单,直接执行下面命令即可:

./bin/kafka-server-start.sh config/server.properties

Kafka测试开发

Kafka安装好以后,确定是否可用,必须先创建一个主题,然后往主题中写入数据,再用消费者获取主题中的数据即可。

如果写程序往Kafka中写入数据还是需要一些时间的,平时开发时不太可能针对不同的应用写不同的生产者程序,Kafka提供了方便的生产者和消费者程序,方便开发者做开发调试。

创建主题

用下面命令可以创建一个名为test的主题:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic test

查看主题

可以用下面命令列出当前Kafka中所有的主题:

bin/kafka-topics.sh --list --zookeeper localhost:2181

生产数据

Kafka提供了命令行生成数据的工具,可以通过该工具很方便的将文件的数据发送给Kafka服务器,以便消费者开发人员进行调试,执行下面命令,可以进入交互界面,输入想发到Kafka的数据回车即可发送一条记录:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

如果发送的数据多,或者数据的格式比较特殊,这种发送方式比较麻烦,这时候可以将要发送的数据写入文件,并用下面命令发送到Kafka服务器:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

消费数据

如果是开发生产者程序,需要确定消费者收到的数据对不对,可以用Kafka提供命令行查看数据的工具,可以通过该工具很方便的将Kafka服务器的数据打印的屏幕上,以便生产者开发人员进行调试,执行下面命令,可以显示收到的所有数据:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

如果收到的数据过多,或者数据的格式比较特殊,也可以将收到的数据写入文件方便查看,下面命令将从Kafka服务器收到的数据打印的屏幕上:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

删除主题

用下面命令可以删除指定主题:

bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

有的时候Kafka内部也会自动生成一些内部管理用的主题,这些主题没法手动删除,这些主题的名字如:__test_offsets

Kafka简单使用的介绍今天就介绍这么多,以后有时间再进行深入的介绍。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180505G17BVC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券