Apache Kafka学习 (一)

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 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个控制台,效果如下:

 

 

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

 

 

 




目录
相关文章
|
6天前
|
消息中间件 Kubernetes Kafka
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
30 0
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
|
15天前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【6月更文挑战第30天】Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅。在Java中,开发者使用Kafka的客户端库创建生产者和消费者。生产者发送序列化消息到主题,消费者通过订阅和跟踪偏移量消费消息。Kafka以持久化、容灾和顺序写入优化I/O。Java示例代码展示了如何创建并发送/接收消息。通过分区、消费者组和压缩等策略,Kafka在高并发场景下可被优化。
72 1
|
6天前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka Streams的集成
Spring Boot与Apache Kafka Streams的集成
|
14天前
|
消息中间件 存储 Java
Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅
【7月更文挑战第1天】Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅。在Java中,开发者使用Kafka的客户端库创建生产者和消费者。生产者发送消息到主题,消费者订阅并消费。Kafka提供消息持久化、容灾机制,支持分区和复制以确保高可用性。通过优化如分区、批处理和消费者策略,可适应高并发场景。简单的Java示例展示了如何创建和交互消息。
18 0
|
14天前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka集成的深度指南
Spring Boot与Apache Kafka集成的深度指南
|
1月前
|
监控 大数据 Java
使用Apache Flink进行大数据实时流处理
Apache Flink是开源流处理框架,擅长低延迟、高吞吐量实时数据流处理。本文深入解析Flink的核心概念、架构(包括客户端、作业管理器、任务管理器和数据源/接收器)和事件时间、窗口、状态管理等特性。通过实战代码展示Flink在词频统计中的应用,讨论其实战挑战与优化。Flink作为大数据处理的关键组件,将持续影响实时处理领域。
238 5
|
2月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4天前
|
关系型数据库 API Apache
Flink CDC:基于 Apache Flink 的流式数据集成框架
本文整理自阿里云 Flink SQL 团队研发工程师于喜千(yux)在 SECon 全球软件工程技术大会中数据集成专场沙龙的分享。
275 1
Flink CDC:基于 Apache Flink 的流式数据集成框架
|
2月前
|
数据处理 Apache 流计算
|
2月前
|
消息中间件 关系型数据库 MySQL
Apache Flink CDC 3.1.0 发布公告
Apache Flink 社区很高兴地宣布发布 Flink CDC 3.1.0!
656 1
Apache Flink CDC 3.1.0 发布公告

热门文章

最新文章

推荐镜像

更多