首页 > 其他分享 >【博学谷学习记录】超强总结,用心分享|狂野架构kafka概述

【博学谷学习记录】超强总结,用心分享|狂野架构kafka概述

时间:2022-10-30 22:26:00浏览次数:58  
标签:处理 狂野 Kafka 集群 消息 超强 日志 kafka

概述

Kafk定义

​ 传统上定义是一个分布式的基于发布/订阅模式的消息队列,主要应用在大数据实时处理场景,现在Kafka已经定义为一个分布式流平台,用于数据通道处理,数据流分析,数据集成和关键任务应用

Kafka历史

​ Kafka最初是由LinkedIn公司采用Scala语言开发,基于ZooKeeper,现在已经捐献给了Apache基金会,目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流处理等多种特性而被广泛应用。

Kafka特性

多个生产者和多个消费者

​ Kafak可以无缝的支持多个生产者,也支持多个消费者从一个单独的消息流中读取数据,且各个消费者之间互不影响

可持久化操作

​ Kafka还允许消费者非实时读取消息,因为Kafka将消息按一定顺序持久化到磁盘,保证了数据不会丢失,顺序写磁盘的效率比随机写内存还要高,而且以时间复杂度为O(1)的方式提供消息持久化能力,对TB级以上的数据也能保证常数时间的访问性能。

高吞吐量

​ Kafka基于发布/订阅模式提供了高吞吐量,Kafka每秒可以生产25万消息,处理55万消息

可伸缩性

​ Kafka设计为具有灵活伸缩性的分布式系统,易于向外扩展,对在线的集群进行扩展丝毫不会影响到整体系统的可用性。

实时性

​ 由于Kafka可横向扩展生产者、消费者、broker,使得集群可以轻松处理巨大的消息流,在处理大量数据的同时,还能保证亚秒级的消息延迟,实时性极高。

容错性

​ Kafka消息都会在集群中进行备份,每个分区都有一台server作为leader,其他server作为follwers,当leader宕机了,follower中的一台server会自动成为新的leader,继续有条不紊的工作,所以容错性很高且集群的负载是平衡的。

Kafka应用场景

Apache Kafka能够支撑海量数据的数据传递,在离线和实时的消息处理业务系统中,Kafka都有广泛的应用

img

消息处理

​ kafka更好的替换传统的消息系统,消息系统被用于各种场景,与大多数消息系统比较kafka有更好的吞吐量内置分区,副本和故障转移,这有利于处理大规模的消息。

​ 根据我们的经验消息往往用于较低的吞吐量,但需要低的端到端延迟并需要提供强大的耐用性的保证,在这一领域的kafka比得上传统的消息系统,如ActiveMQ或RabbitMQ等。

网站活动追踪

​ kafka原本的使用场景是用户的活动追踪,网站的活动(网页游览,搜索或其他用户的操作信息)发布到不同的话题中心,这些消息可实时处理实时监测也可加载到Hadoop或离线处理数据仓库。

指标分析

​ kafka也常常用于监测数据,分布式应用程序生成的统计数据集中聚合。

日志聚合

​ 许多人使用Kafka作为日志聚合解决方案的替代品,日志聚合通常从服务器中收集物理日志文件,并将它们放在中央位置(可能是文件服务器或HDFS)进行处理。Kafka抽象出文件的细节,并将日志或事件数据更清晰地抽象为消息流。这允许更低延迟的处理并更容易支持多个数据源和分布式数据消费。

流处理

​ kafka中消息处理一般包含多个阶段,其中原始输入数据是从kafka主题消费的,然后汇总,丰富,或者以其他的方式处理转化为新主题,例如,一个推荐新闻文章,文章内容可能从“articles”主题获取;然后进一步处理内容,得到一个处理后的新内容,最后推荐给用户。这种处理是基于单个主题的实时数据流。从0.10.0.0开始,轻量,但功能强大的流处理,就可以这样进行数据处理了,除了Kafka Streams还有ApacheStorm和Apache Samza可选择。

事件采集

​ 事件采集是一种应用程序的设计风格,其中状态的变化根据时间的顺序记录下来,kafka支持这种非常大的存储日志数据的场景。

Kafka架构

先来看一张图,下面这张图就是 kafka 生产与消费的核心架构模型

​ 如下图,一个kafka架构包括若干个Producer(服务器日志、业务数据、web前端产生的page view等),若干个Broker(kafka支持水平扩展,一般broker数量越多集群的吞吐量越大),若干个consumer group,一个Zookeeper集群(kafka通过Zookeeper管理集群配置、选举leader、consumer group发生变化时进行rebalance)

标签:处理,狂野,Kafka,集群,消息,超强,日志,kafka
From: https://www.cnblogs.com/xieshier/p/16842439.html

相关文章

  • 【flink学习系列1】sink文件到kafka
    importjava.util.Properties;importorg.apache.flink.api.common.RuntimeExecutionMode;importorg.apache.flink.api.common.serialization.SimpleStringSchema;im......
  • Kafka简明教程(三)Kafka‘s Ecosystem
    ​​LinkedinBurrow​​:Burrow是linkedin开源的一个监控ApacheKafka的工具,burrow可以将消费者滞后检查作为一项服务来对外提供。它监视所有消费者的承诺偏移量,并根据需要......
  • kafka常用命令
    相关概念Brokerkafka节点,多个broker组成kafka集群。Topic即主题,kafka通过Topic对消息进行分类,发布到kafka的消息都需要指定Topic。Producer即消息生产者,向Broker发送......
  • 【博学谷学习记录】超强总结,用心分享|Python容器详解
    一、Python中容器的介绍容器:也可以称为是数据序列,或者高级数据类型,也是Python中的数据类型。容器中可以存放多个数据。Python中常用的容器有4种:list(列表)、......
  • Kafka的启动与关闭
    以Windows系统为例启动zookeeper打开cmd并进入kafka的安装目录cdC:\BigData\kafka_2.13-3.3.1启动zookeeper并指定启动的配置文件bin\windows\zookeeper-server-st......
  • Kafka 为什么那么快?
    有人说:他曾在一台配置较好的机子上对​​Kafka​​​进行性能压测,压测结果是​​Kafka​​​单个节点的极限处理能力接近每秒​​2000万​​​条消息,吞吐量达到每秒......
  • zookeeper和kafka安装
    系统:CentOSLinux7(Core)x86_64一、JDK安装1.安装准备#查看系统jdk版本java-version#检查jdk自带安装包rpm-qa|grepjava#卸载jdkyum-yremovetzdat......
  • kafka 从入门到精通2 、 创建kafka 生产者与消费者实例
    上一篇:​​kafka单机版和分布式版安装​​首先创建一个生产者:packageorg.training.hadoop.kafka;importorg.apache.kafka.clients.producer.KafkaProducer;importorg.a......
  • 2020年,kafka面试题总结。
    总结的都是最常见问到的问题:问题1:什么是ApacheKafka?答:ApacheKafka是一个发布 - 订阅开源消息代理应用程序。这个消息传递应用程序是用“scala”编码的。基本上,这个项目......
  • flume往kafka中导入数据
    1、编辑flume的配置文件a1.sources=r1a1.channels=c1#Describe/configurethesourcea1.sources.r1.type=taildira1.sources.r1.filegroups=f1a1.sources.......