|NO.Z.00002|——————————|BigDataEnd|——|Hadoop&kafka.V02|——|kafka.v02|基本架构|核心概念.v01|
一、概念和基本架构
### --- [kafka架构与实战]
~~~ [kafka介绍]
~~~ [kafka优势]
~~~ [kafka应用场景]
~~~ [kafka基本架构]
~~~ [kafka核心概念]
### --- Kafka介绍
~~~ Kafka是最初由Linkedin公司开发,
~~~ 是一个分布式、分区的、多副本的、多生产者、多订阅者,
~~~ 基于zookeeper协调的分布式日志系统(也可以当做MQ系统),
~~~ 常见可以用于web/nginx日志、访问日志,消息服务等等,
~~~ Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
~~~ # 主要应用场景是:日志收集系统和消息系统。
### --- Kafka主要设计目标如下:
~~~ 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。
~~~ 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。
~~~ 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
~~~ 同时支持离线数据处理和实时数据处理。
~~~ 支持在线水平扩展

### --- 有两种主要的消息传递模式:
~~~ 点对点传递模式、发布-订阅模式。
~~~ 大部分的消息系统选用发布-订阅模式。Kafka就是一种发布-订阅模式。
~~~ 对于消息中间件,消息分推拉两种模式。
~~~ Kafka只有消息的拉取,没有推送,可以通过轮询实现消息的推送。
~~~ Kafka在一个或多个可以跨越多个数据中心的服务器上作为集群运行。
~~~ Kafka集群中按照主题分类管理,一个主题可以有多个分区,一个分区可以有多个副本分区。
~~~ 每个记录由一个键,一个值和一个时间戳组成。
### --- Kafka具有四个核心API:
~~~ Producer API:允许应用程序将记录流发布到一个或多个Kafka主题。
~~~ Consumer API:允许应用程序订阅一个或多个主题并处理为其生成的记录流。
~~~ Streams API:允许应用程序充当流处理器,使用一个或多个主题的输入流,
~~~ 并生成一个或多个输出主题的输出流,从而有效地将输入流转换为输出流。
~~~ Connector API:允许构建和运行将Kafka主题连接到现有应用程序或数据系统的可重用生产者或使用者。
~~~ 例如,关系数据库的连接器可能会捕获对表的所有更改。
二、Kafka优势
### --- kafka优势
~~~ 高吞吐量:单机每秒处理几十上百万的消息量。即使存储了许多TB的消息,它也保持稳定的性能。
~~~ 高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。
~~~ 持久化数据存储:将消息持久化到磁盘。通过将数据持久化到硬盘以及replication防止数据丢失。
~~~ 零拷贝
~~~ 顺序读,顺序写
~~~ 利用Linux的页缓存
~~~ 分布式系统,易于向外扩展。所有的Producer、Broker和Consumer都会有多个,均为分布式的。
~~~ 无需停机即可扩展机器。多个Producer、Consumer可能是不同的应用。
~~~ 可靠性 - Kafka是分布式,分区,复制和容错的。
~~~ 客户端状态维护消息被处理的状态是在Consumer端维护而不是由server端维护。当失败时能自动平衡。
~~~ 支持online和offline的场景。
~~~ 支持多种客户端语言。Kafka支持Java、.NET、PHP、Python等多种语言。
三、Kafka应用场景
### --- kafka应用场景
~~~ # 日志收集:
~~~ 一个公司可以用Kafka可以收集各种服务的Log,
~~~ 通过Kafka以统一接口服务的方式开放给各种Consumer;
~~~ # 消息系统:
~~~ 解耦生产者和消费者、缓存消息等;
~~~ # 用户活动跟踪:
~~~ Kafka经常被用来记录Web用户或者App用户的各种活动,
~~~ 如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到Kafka的Topic中,
~~~ 然后消费者通过订阅这些Topic来做实时的监控分析,亦可保存到数据库;
~~~ # 运营指标:
~~~ Kafka也经常用来记录运营监控数据。
~~~ 包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;
~~~ # 流式处理:
~~~ 比如Spark Streaming和Storm。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv013-kafka
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY