Kafka入门&介绍part1

Kafka是一个分布式数据发布订阅平台,以其高吞吐量、内置分区、消息复制和容错性著称。本文介绍了Kafka的基本概念,如主题和日志,以及分布式、地理复制等特性。此外,还涵盖了生产者、消费者、多租户和保证的消息传递。通过快速开始部分,读者可以学习如何启动服务、创建主题、发送和消费消息。Kafka在消息系统、网站活动追踪、数据统计、日志收集和流式处理等多种场景中得到广泛应用,并拥有丰富的生态系统和详细配置选项。
摘要由CSDN通过智能技术生成

kafka

介绍

kafka是一个分布式数据发布订阅平台。

在这里插入图片描述

特点
1. 发布/订阅:类似消息队列或企业消息总线
2. 存储数据:容错、可持久化
3. 处理数据:实时处理

在这里插入图片描述

应用
消息系统
传统消息系统有两种模式:队列和发布订阅。队列就是消费者按序读取记录,发布订阅就是记录被广播至所有消费者。
这两种模式都有各自优缺点。队列的优点是允许记录分发在多个消费者,加快消息处理速度,但是消息不能并发读取,只能
一个一个来。发布订阅允许你广播消息至多个处理器,但是由于每个消息都传递给每个订阅者,因此无法扩展处理。

kafka的消费者组可以解决上面的问题。kafka的消费者组概念概括了这两个概念。与队列一样,使用者组允许将处理划分为一组
进程(使用者组的成员)。与发布-订阅一样,Kafka允许您向多个消费者组广播消息。kafka模型的优点是,每个主题都具有这些
属性——它可以扩展处理,而且是多租户。同时kafka比传统消息系统有更强的顺序保证。
概念
1. kafka作为集群可以运行在多个服务器
2. kafka集群存储记录目录的组件叫topics
3. 每条记录(record)包含key、value和timestamp

在这里插入图片描述

核心API
Producer API: 允许应用发布记录流到一个或多个kafka主题
Consumer API: 允许应用订阅一个或多个主题,并处理记录流
Stream API: 允许应用作为流处理器,从主题消费数据流,然后往其他主题设置输出数据流
Connector API: 允许构建和运行可重用的生产者和消费者(如一个关系型数据库的connector可以监听表的每次改变)
AdminClient API: 管理和监控topic、broker和其他组件

在这里插入图片描述

主题和日志

主题就是一个类别(或目录)记录哪些记录被发布。kafka主题是多订阅者,也即是一个主题可以有0个、1个或多个
消费者订阅主题的数据(即记录)。对于每个主题,kafka cluster维护一个分区日志。每个分区是一个有序的只能追加的有结构
的日志。分区的每条记录都分配一个序号(offset)来唯一标识。

kafka cluster持久化所有发布的记录(不管记录是否被消费),这些记录会设置保留期限。比如如果保留期限为2天,那么2天内记录
是可被消费的,2天后就被丢弃了(释放空间)。Kafka的性能相对于数据大小实际上是恒定的,因此长时间存储数据不成问题。

实际上每个消费者都是基于offset读取记录的,所以消费者可以控制消费记录的顺序(比如可以重置旧offset读前面或后面的记录)。
这些特性决定了消费者加入或退出不会影响集群中其他的消费者。

日志可以分区,不会限制于单台服务器的限制。一个主题可能有多个分区,所以它可以存储更多数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值