Apache Kafka学习 (一)

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
云原生网关 MSE Higress,422元/月
简介: 前言:最近公司开始要研究大数据的消息记录,于是开始研究kafka。 市面上kafka的书很少,有的也版本比较落后,于是仗着自己英文还不错,上官网直接学习。 ^_^   1. 开始 - 基本概念 学习一样东西,我们首先要知道它是什么。

前言:最近公司开始要研究大数据的消息记录,于是开始研究kafka。

市面上kafka的书很少,有的也版本比较落后,于是仗着自己英文还不错,上官网直接学习。 ^_^

 

1. 开始 - 基本概念

学习一样东西,我们首先要知道它是什么。

那么kafka是什么呢?

照官网的解释: 

Apache Kafka™ is a distributed streaming platform

(Kafka是一个分布式的流式数据平台。)

照着官网的解释,kafka拥有以下3项主要能力:

1) 能够在流记录上进行发布和订阅,类似于消息队列了。

2) 能够容错存储流记录。

3) 能够处理流记录。

 

那么,接下来又要问了,我们用kafka的好处是什么呢?

主要有以下2点好处:

1) 在系统或者应用之间可以构建可依赖的实时的流数据管道。

2)  可以构建实时的处理流数据的系统。

 

2. 核心概念

* kafka以集群的方式运行在一台或多态服务器上。

* kafka集群根据topic(主题)对存储的流记录进行分类。

* 每条流记录包含一个键值对和一个时间戳。

 

3. 核心API

* Producer(生产者) API 允许应用程序发布流记录到一个或多个kafka主题。

* Consumer(消费者) API允许应用程序订阅一个或多个kafka主题,从而对这些主题下的流数据进行处理。

* Streams(流) API则负责高效地处理各个主题下的流记录。

* Connector(连接器) API允许构建可重用的生产者或消费者,并且让他们和现有的系统进行对接。

  (举个例子:一个连接到关系型数据库的连接器可以捕捉表格的每次改变)

 

 

4. 主题和日志

一个主题可以被多个消费者订阅。

 kafka的每个主题是以分区日志的形式维护的。

日志中的每个分区分布在集群中的各个服务器上。

有一台服务器扮演leader(头领)的角色,而其余的服务器则是followers(跟随者)。

 

5. 生产者(Producer)和消费者(Consumer)

 

上图是2台服务器的kafka集群带了4个分区(P0 - P3), 2组Consumer订阅Producer发布的主题消息。

 

6. 安装和启动

1)下载kafka源码

https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz

> tar -xzf kafka_2.11-0.10.2.0.tgz
> cd kafka_2.11-0.10.2.0

 

2) 启动服务器

由于kafka使用zookeeper来管理集群,所以你先需要启动zookeeper。

如果你没有安装zookeeper,你可以是用户kafka的内置脚本启动一个单节点的zookeeper实例。
  2-1) 启动单节点zookeeper实例:

  > bin/zookeeper-server-start.sh config/zookeeper.properties

  2-2) 启动kafka server:

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

   2-3) 创建topic(主题)

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

   2-4) 使用list命令查看所有主题

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

     显示结果:  test

 

7. 发送消息

# 运行生产者脚本,并向刚刚创建的test主题发送一些消息

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

你可以打一些字,如下:

哈哈哈

嘿嘿,你好啊

 

8. 接收消息

# 运行消费者脚本,从test主题订阅消息

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

  收到消息:

  哈哈哈

  嘿嘿,你好啊

 

我们以上演示需要开启4个控制台,效果如下:

 

 

好了,第一次笔记到此结束,后续会继续阅读学习。 ^_^

 

 

 




目录
相关文章
|
2月前
|
Dubbo Java 应用服务中间件
Apache ShenYu 架构学习指南
Apache ShenYu 是一款高性能、插件化的微服务API网关,基于Spring WebFlux + Reactor 构建,支持多协议、动态配置与实时数据同步。本指南以通俗类比和实战路径,带你深入理解其架构设计、核心流程与源码实现,助力快速掌握并参与贡献。
309 12
|
3月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
347 4
|
5月前
|
消息中间件 存储 监控
Apache Kafka 3.0与KRaft模式的革新解读
在该架构中,Kafka集群依旧包含多个broker节点,但已不再依赖ZooKeeper集群。被选中的Kafka集群Controller将从KRaft Quorum中加载其状态,并在必要时通知其他Broker节点关于元数据的变更。这种设计支持更多分区与快速Controller切换,并有效避免了因数据不一致导致的问题。
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
618 5
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
455 1
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
2月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
346 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
297 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
4月前
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
511 9
Apache Flink:从实时数据分析到实时AI
|
4月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
456 0

推荐镜像

更多