大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka (正在更新…)

章节内容

上节我们完成了如下的内容:


Redis高可用 CAP-AP

Redis主从模式

Redis一主一从 一主多从

Redis哨兵模式

Redis哨兵模式 docker-compose测试

终于!我们更新完了Redis!现在我们开始更新Kafka。


Kafka介绍

Kafka最初是由Linkedin公司开发,是一个分布式、分区的、多副本、多生产者、多消费者、基于ZK的。

常见用于 Nginx 日志、消息服务。在2010年贡献给了Apache基金会成为顶级开源项目。


Kafka主要设计目标如下:


以时间复杂度为O(1)的方式提供消息持久化的能力,即使TB级数据也能保证常数访问。

高吞吐率,即使在非常廉价的机器上也可以有每秒100K条消息的传输

支持KafkaServer间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。

同时支持离线数据处理和实时数据处理

支持在线水平扩展

生产消费图

消息模式

主流的消息传递有两种方式:点对点和发布订阅,Kafka属于 发布-订阅 模式的一种

对于消息中间件,消息会分为:拉、推。Kafka消息只有拉取,没有推送。(可以用轮询实现推送)


Kafka在一个或多个可以跨域多个数据中心的服务器上作为集群运行

Kafka集群按照主题分类管理,一个主题可以多个分区,一个分区可以有多个副本分区

每个记录由一个键,一个值和一个时间戳组成。

核心API

ProducerAPI:允许应用程序记录流发布到一个或者多个Kafka主题

ConsumerAPI:允许应用程序订阅一个或多个主题并处理并生成记录流

StreamAPI:允许应用程序充当流处理器,使用一个或多个主题的输入流,并生成一个或者多个输出流。从而有效的将输入流转换为输出流。

ConnectorAPI:允许构建和运行将Kafka主题连接到现有应用程序或数据系统的可重用生产者或使用者

Kafka优势

高吞吐:单机每秒处理几十百万的消息量,即使存储了TB消息,也能够稳定运行

高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。

持久化数据存储:将消息持久化,通过数据持久化到磁盘以及replication防止数据丢失。

分布式系统,易于向外扩展。所有Producer和Consumer等都可以有多个,分布式的,无需停机扩展。

Kafka是分布式、分区、复制、容错的

客户端状态维护:消息被处理的状态在Consumer端维护,而不是由Server维护,失败能够自动平衡

支持online和offline场景

支持多种语言

应用场景

日志收集:可以用Kakfa进行日志的收集

消息系统:解耦生产者和消费者

用户活动跟踪:用户行为被记录到Kafka中,消费者取到之后对用户的数据进行分析处理

运营指标:记录运营监控数据、报警和报告

流式处理:比如SparkStream、Storm

基本架构

消息和批次

Kafka的数据单元称为消息,可以把消息看成是数据库里的一个数据行或者一条记录。消息由字节组组成。

消息由键,键也是一个字节数组,当消息以一种可控的方式写入不同的分区时,会用到键。

为了提高效率,消息被分批写入Kafka,批次就是一组消息,这些消息属于同一个主题和分区。

把消息分批次可以减少网络开销,批次越大,单位时间内处理的消息就越多,单个消息传输的时间久越长。

消息模式

消息模式(schema)有很多可用的选项。如 JSON、XML,他们缺乏强类型的处理能力。

Kafka的开发者喜欢使用ApacheAvro,提供了一种紧凑序列格式化,模式和消息体分开。当模式发生变化时,不需要重新生成代码,它还支持强类型和模式进化。

数据格式一致性对Kafka很重要,因为它消除了消息读写操作之间的耦合性。

主题和分区

Kafka的消息通过主题进行分类,主题可比数据库表或者文件系统里的文件夹。主题可以被分为若干区域,一个主题通过分区分布于Kafka集群中,提供了横向扩展的能力。


生产和消费者

生产者创建消息,消费者消费消息。

生产者在默认的情况下会把消息均衡的发布到主题的所有分区上:


直接指定消息的分区

根据消息的key散列取模得出分区

轮询指定分区

消费者通过偏移量来区分已经读过的消息,从而消费消息。

消费者是消费组的一部分,消费组保证每个分区只有一个消费者使用,避免重复消费。

Broker 和 集群

一个独立的Kafka服务器成为Broker,Broker接受来自生产者的消息,为消息设置偏移量,并提交到磁盘进行保存。

Broker为消费者提供服务,对读取分区的请求做出响应,返回已提交到磁盘上的消息。

单个Broker可以轻松处理数千个分区以及每秒百万的消息量。

每一个集群都有一个Broker是集群控制器(自动从集群的活跃成员中选举出来)

控制器负责管理工作:


将分区分配给Broker

监控Broker

集群中一个分区属于一个Broker,该Broker称为分区首领。


一个分区可以分配给多个Broker,此时会发生分区复制。

分区的复制提高了消息冗余、高可用。

副本分区不负责处理消息的读写。



目录
相关文章
|
30天前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
110 7
|
6月前
|
资源调度 监控 调度
基于SCA的软件无线电系统的概念与架构
软件通信体系架构(SCA)是基于软件定义无线电(SDR)思想构建的开放式、标准化和模块化平台,旨在通过软件实现通信功能的灵活配置。SCA起源于美军为解决“信息烟囱”问题而推出的联合战术无线电系统(JTRS),其核心目标是提升多军种联合作战通信能力。 上海介方信息公司的OpenSCA操作环境严格遵循SCA4.1/SRTF标准,支持高集成、嵌入式等场景,适用于军用通信、雷达等领域。 SCA体系包括目标平台资源层(TRL)、环境抽象层(EAL)、SRTF操作环境(OE)及应用层(AL)。其中,SRTF操作环境包含操作系统、运行时环境(RTE)和核心框架(CF),提供波形管理、资源调度等功能。
|
3月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
1612 7
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
4月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
297 10
|
3月前
|
消息中间件 存储 大数据
阿里云消息队列 Kafka 架构及典型应用场景
阿里云消息队列 Kafka 是一款基于 Apache Kafka 的分布式消息中间件,支持消息发布与订阅模型,满足微服务解耦、大数据处理及实时流数据分析需求。其通过存算分离架构优化成本与性能,提供基础版、标准版和专业版三种 Serverless 版本,分别适用于不同业务场景,最高 SLA 达 99.99%。阿里云 Kafka 还具备弹性扩容、多可用区部署、冷热数据缓存隔离等特性,并支持与 Flink、MaxCompute 等生态工具无缝集成,广泛应用于用户行为分析、数据入库等场景,显著提升数据处理效率与实时性。
|
3月前
|
搜索推荐 安全 数据挖掘
电商API背后,藏着多少改变行业的神秘应用场景?
电商API作为连接电商平台、商家与消费者的桥梁,正推动行业创新与发展。本文解析其七大应用场景:商品管理实现高效上新与动态调整;订单处理优化全流程掌控;支付结算保障安全便捷;用户管理助力个性化服务;营销推广达成精准触达;数据分析支持策略优化;跨境电商促进全球布局。通过API接口的合理应用,可大幅提升运营效率、用户体验及业务拓展能力,为电商行业注入无限可能。
|
8月前
|
XML Java 开发者
Spring底层架构核心概念解析
理解 Spring 框架的核心概念对于开发和维护 Spring 应用程序至关重要。IOC 和 AOP 是其两个关键特性,通过依赖注入和面向切面编程实现了高效的模块化和松耦合设计。Spring 容器管理着 Beans 的生命周期和配置,而核心模块为各种应用场景提供了丰富的功能支持。通过全面掌握这些核心概念,开发者可以更加高效地利用 Spring 框架开发企业级应用。
223 18
|
10月前
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
|
10月前
|
测试技术 持续交付 微服务
深入理解微服务架构:从概念到实践
深入理解微服务架构:从概念到实践

热门文章

最新文章