Kafka实战-入门

简介:

1.概述

  经过一个多月的时间观察,业务上在集成Kafka后,各方面还算稳定,这里打算抽时间给大家分享一下Kafka在实际场景中的一些使用心得。本篇博客打算先给大家入个门,让大家对Kafka有个初步的了解,知道Kafka是做什么的,下面是本篇博客的目录内容:

  • Kafka背景
  • Kafka应用场景
  • Kafka架构原理

  下面开始今天的博客分享内容。

2.Kafka背景

  Kafka它本质上是一个消息系统,由当时从LinkedIn出来创业的三人小组开发,他们开发出了Apache Kafka实时信息队列技术,该技术致力于为各行各业的公司提供实时数据处理服务解决方案。Kafka为LinkedIn的中枢神经系统,管理从各个应用 程序的汇聚,这些数据经过处理后再被分发到其他地方。Kafka不同于传统的企业信息队列系统,它是以近乎实时的方式处理流经一个公司的所有数据,目前已 经服务于LinkedIn、Netflix、Uber以及Verizon,并为此建立了实时信息处理平台。

  流水数据是所有站点对其网站使用情况做报表时都要用到的数据中最常用的一部分,流水数据包括PV,浏览内容信息以及搜索记录等。这些数据通常是先以日志文件的形式存在,然后有周期的去对这些日志文件进行统计分析处理,然后获得需要的KPI指标结果。

3.Kafka应用场景

  我们在接触一门新技术或是新语言时,得明白这门技术(或是语言)的应用场景,也就说要明白它能做什么,服务的对象是谁,下面用一个图来说明,如下图所示:

  首先,Kafka可以应用于消息系统,比如,当下较为热门的消息推送,这些消息推送系统的消息源,可以使用Kafka作为系统的核心组建来完成 消息的生产和消息的消费。然后是网站的行迹,我们可以将企业的Portal,用户的操作记录等信息发送到Kafka中,按照实际业务需求,可以进行实时监 控,或者做离线处理等。最后,一个是日志收集,类似于Flume套件这样的日志收集系统,但Kafka的设计架构采用push/pull,适合异构集 群,Kafka可以批量提交消息,对Producer来说,在性能方面基本上是无消耗的,而在Consumer端中,我们可以使用HDFS这类的分布式文 件存储系统进行存储。

4.Kafka架构原理

  Kafka的设计之初是希望做一个统一的信息收集平台,能够实时的收集反馈信息,并且具有良好的容错能力。Kafka中我们最直观的感受就是它的消费者与生产者,如下图所示:

4.1Producer And Consumer

  这里Kafka对消息的保存是根据Topic进行归类的,由消息生产者(Producer)和消息消费者(Consumer)组成,另外,每一 个Server称为一个Broker。对于Kafka集群而言,Producer和Consumer都依赖于ZooKeeper来保证数据的一致性。

4.2Topic

  在每条消息输送到Kafka集群后,消息都会由一个Type,这个Type被称为一个Topic,不同的Topic的消息是分开存储的。如下图所示:

  一个Topic会被归类为一则消息,每个Topic可以被分割为多个Partition,在每条消息中,它在文件中的位置称为Offset,用 于标记唯一一条消息。在Kafka中,消息被消费后,消息仍然会被保留一定时间后在删除,比如在配置信息中,文件信息保留7天,那么7天后,不管 Kafka中的消息是否被消费,都会被删除;以此来释放磁盘空间,减少磁盘的IO消耗。

  在Kafka中,一个Topic的多个分区,被分布在Kafka集群的多个Server上,每个Server负责分区中消息的读写操作。另 外,Kafka还可以配置分区需要备份的个数,以便提高可用行。由于用到来ZK来协调,每个分区都有一个Server为Leader状态,服务对外响应 (如读写操作),若该Leader宕机,会由其他的Follower来选举出新的Leader来保证集群的高可用性。

5.总结

  总体来说,介绍Kafka的相关背景,概述及原理,这些较为偏理论,概念性较强,需要大家认真的去理解、琢磨,这里可以大致熟悉一下,心中有个轮廓,后面会陆续介绍Kafka的实战用法,让大家在实际业务和编码中去体会Kafka的这些原理。

6.结束语

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

目录
相关文章
|
10月前
|
JavaScript
1-JeecgBoot介绍
JeecgBoot是一款基于代码生成器的低代码开发平台,采用前后端分离架构,包含SpringBoot2.x、Ant Design&Vue等技术,实现零代码高效开发。
1-JeecgBoot介绍
|
API C++
甩开卡顿!HarmonyOS丢帧问题超详细拆解手册
这是一本针对HarmonyOS丢帧问题的超详细调优指南,从渲染流水线原理到实战优化全面解析。文章拆解了应用侧、Render Service和屏幕显示三大核心模块,结合60Hz/90Hz/120Hz帧率要求,深入分析卡顿原因。通过四步法(识别、录制、定位、优化),提供核弹级性能优化方案,涵盖列表卡顿、动画掉帧、布局臃肿等常见问题,并总结避坑圣经,助你轻松甩开卡顿,打造丝滑体验!
1073 1
|
10月前
|
人工智能 缓存 调度
《AI协同开发深潜:从架构迷雾到系统澄明的实战路径》
本文以企业级供应链管理系统迭代项目为背景,讲述团队借助Cursor、GitHub Copilot X、Sourcegraph Cody构建AI工具矩阵,破解架构耦合、功能开发难题的实战过程。通过Copilot X梳理旧系统架构、定位耦合风险并提供重构方案,Cursor基于上下文完成精准编码与实时优化,Cody排查逻辑断点、优化性能与安全风险,三者协同形成闭环。最终项目21天完成,架构梳理、编码、问题排查效率大幅提升,系统指标全面达标。文章还总结了AI协作关键经验,指出AI是“思维伙伴”,未来开发者核心价值在于与AI协同,将业务需求转化为最优方案。
374 12
|
10月前
|
机器学习/深度学习 数据采集 算法
【SCI二区IEEE复现】基于混合有限集模型预测控制(FCS-MPC)的模块化多电平换流器(MMC)整流电路仿真模型(Simulink仿真实现)
【SCI二区IEEE复现】基于混合有限集模型预测控制(FCS-MPC)的模块化多电平换流器(MMC)整流电路仿真模型(Simulink仿真实现)
369 6
|
传感器 机器学习/深度学习 人工智能
仿生机器人:自然界灵感的工程应用
【10月更文挑战第14天】仿生机器人作为自然界灵感与工程技术的完美结合,正逐步改变着我们的生活和工作方式。通过深入了解其设计原理、关键技术、应用领域以及未来的发展趋势,我们可以更加清晰地看到仿生机器人在推动科技创新和社会发展中的重要作用。让我们共同期待仿生机器人在未来带来的更多惊喜和变革!
1094 1
|
10月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
搜索推荐 前端开发 数据安全/隐私保护
改善用户体验方法
【10月更文挑战第9天】改善用户体验方法
1384 3
|
5G 索引
频域结构 | 带你读《5G 空口设计与实践进阶 》之十九
在频域,为满足多样带宽需求,NR 支持灵活可扩展的 Numerology。这相应也决定了 NR 在频域资源上的物理量度是可变的。
频域结构 | 带你读《5G 空口设计与实践进阶 》之十九
|
存储 API PHP
兰空图床Typecho上传插件LskyPluginTypechoV2安装及使用教程
【10月更文挑战第1天】本插件基于isYangs、泽泽站长、兔子君、冷寂等前辈的作品,适用于Typecho。教程包括获取API Token、设置插件及上传图片等步骤。
|
Oracle 关系型数据库 Linux