Logo
Section 1 / 7

简介

本课程向读者介绍 Kafka,并对这项技术进行概览。

导入

简介

本课程向读者介绍 Kafka,并对这项技术进行概览。

Kafka 由 Jay Kreps、Neha Narkhede 和 Jun Rao 创立,于 2009 年 1 月首次亮相于大数据领域。自那时起,Kafka 的受欢迎程度和使用范围持续增长,尤其在企业环境中应用广泛。几乎每个大数据部门都会有一个团队负责使用和维护 Kafka,或在其之上构建封装服务,供公司其他部门使用。Kafka 使用 Java 和 Scala 编写,其起源可追溯至 LinkedIn,在那里它最初被开发,随后开源。Kafka 最初的应用场景是追踪用户在 LinkedIn 网站上的操作行为。这些行为数据作为后端各类应用的输入,包括机器学习系统、搜索优化器和报表生成器等,共同为提升用户体验发挥关键作用。

...
Apache Kafka

该软件以著名短篇小说家和小说家 弗朗茨·卡夫卡 命名,意在体现其“专为写入优化”的设计理念。

根据官方文档描述,Kafka 是:

一个分布式事件流平台,允许你在多台机器之间读取、写入、存储和处理事件(文档中也称为记录或消息)。

事件可以理解为需要从生产者传递到消费者的独立信息单元。这类事件包括亚马逊支付交易、iPhone 地理位置更新、FedEx 物流订单、物联网设备或医疗设备的传感器数据等。

多年来,为应对不同应用场景,陆续出现了多种数据存储与处理工具。每种工具最初都针对特定需求进行了优化。随着时间推移,这些工具之间的界限逐渐模糊。例如,像 Redis 这样的数据存储系统如今也可用作消息队列,而像 Kafka 这样的消息队列机制也提供了类似数据库的持久性保障,使其具备了数据存储功能。特别是 Kafka,主要用于构建数据管道和实现流式处理解决方案。

...
Kafka 交互的高层次概览

在本课程中,我们将深入探讨 Kafka 的基本原理,并通过浏览器终端完成一系列实际示例。请按照下方小部件中的说明,体验 Kafka 生产者与消费者之间交换消息的过程。

1# 切换到 Kafka 安装目录 2cd /Kafka 3 4# 从 bin 目录启动 Zookeeper,同时将输出重定向到空设备,避免 Zookeeper 的日志与 Kafka 控制台输出混杂 5bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 & 6 7# 可运行以下命令验证 Zookeeper 是否正在运行 8ps -aef 9 10# 启动 Kafka 服务。你应该能在控制台看到服务输出。 11# 当输出停止时,按回车键返回命令行。 12bin/kafka-server-start.sh config/server.properties & 13 14# 此时你已成功搭建并运行了一个基础的 Kafka 环境。 15 16# 创建名为 'datajek-topic' 的主题用于发布消息 17bin/kafka-topics.sh --create --topic datajek-topic --bootstrap-server localhost:9092 18 19# 向 'datajek-topic' 主题写入一些消息 20bin/kafka-console-producer.sh --topic datajek-topic --bootstrap-server localhost:9092 21 22# 按 Ctrl+C 停止生产者 23 24# 运行消费者读取已写入主题的消息 25bin/kafka-console-consumer.sh --topic datajek-topic --from-beginning --bootstrap-server localhost:9092 26 27# 你应该能看到之前输入的所有消息显示在控制台上。随时按 Ctrl+C 停止消费者。
Terminal

分布式系统的特点