对Kafka的总结

【Kafka】Kafka-Eagle 和 Kafka-UI 的安装使用 Kafka Eagle 提供了完善的管理页面,可以监控 Kafka 集群的整体运行情况,很方便的去管理和可视化 Kafka 集群的一些信息,例如 Broker 详情、性能指标趋势、Topic 集合、消费者信息等,在生产环境中经常使用。 阅读详情

定位:kafka是一款分布式,高吞吐量,基于发布/订阅的消息中间件。

核心组件:

broker:kafka服务器,负责消息的存储和转发。

topic:主题,消息的类别,kafka按照topic分类消息。

partition:分区,一个topic可以有多个partition分区,topic中的消息保存在各个partition上。

offset:偏移量。消息在kafka消息文件中的位置,可以理解为消息在partition上的偏移量,也是代表该消息的唯一序号。

producer:消息的生产者。

consumer:消息的消费者。

consumer group: 消费组,消费者的分组,每个消费者分组必须要属于一个group

zookeeper:配置中心,保存kafka集群的broker,topic,partition等信息,另外还负责broker的故障发现,partition的leader选举,负载均衡等。

 

  Kafka的存储设计:

partition分区数据文件(offset,messageSize,data)

partition中的每条message包含3个属性,offset表示这个消息在partition中的偏移量,可以看作每个消息的消息顺序id。messageSIze则是消息的大小,data为消息的内容。

数据文件分段segement(顺序读写,分段命令,二分查找)

partition物理上是由多个segement文件组成,每个segement文件大小相同,顺序读写。而且每个segement文件都是以当前文件中offset最小的值命名.log,这样我们查offset消息时,就可以很快二分查找定位到这个offset消息在哪个segement文件中。

数据文件索引(分段索引、稀疏存储)

kafka为每个segement文件建立了索引文件,文件名与segement文件名相同.index。但是kafka并没有给每一条消息都建立索引,而是采取稀疏索引的方式,每隔一定字节的数据建立索引,从而避免索引文件过大,因此可以将索引文件放入内存中。

 生产者设计(负载均衡)

由于topic是由多个partition组成,且partition均匀分布在不同的broker上,因此为了有效的利用broker的集群性能,提高吞吐量,producer会通过hash或者随机等方式将消息平均发送到多个partittion上,以实现负载均衡。

批量发送

批量发送也是提高吞吐量的重要方式,Producer端可以在内存中合并多条消息,以一次请求的方式批量发送给不同的Broker,从而大大减少broker存储消息时的io操作,所以也一定程度上影响消息的实时性,但是换取了更好的吞吐量。

消息压缩

producer端可以用GZIP或者Snappy对消息集合压缩。producer端压缩后,consumer也需要解压,压缩解压需要消耗少量cpu资源,但是好处是减少传输的数据量,减轻网络压力,在大数据处理上,往往瓶颈体现在网络上而不是cpu。

消费者设计

consumer group 

同一 Consumer Group 中的多个 Consumer 实例,不同时消费同一个 partition,等效于队列模 式。partition内消息是有序的,Consumer通过pull方式消费消息。Kafka不删除已消费的消息 
对于partition,顺序读写磁盘数据,以时间复杂度O(1)方式提供消息持久化能力。 

 

使用kafka-eagle监控kafka kafka-eagle(/'iːg(ə)l/)是一款简单高效的监控系统,用以监控kafka的偏移量、元数据等信息,它还提供了邮件、钉钉、微信报警功能。本篇假设已经存在一个可用的kafka集群,并介绍kafka-eagle搭建与使用。 官网:https://www.kafka-eagle.org/ github:https://github.com/smartloli/kafka-eagle 前... 阅读详情

相关推荐

Kafka(一)使用Docker Compose安装单机Kafka以及Kafka UI_docker 部署单机kafka

还有就是,当使用任何来自于bitnami的镜像,如何遇到了问题,想查看日志,可以将镜像的Debug日志打开,通过环境变量控制由于Docker Hub的说明字数限制,可以在Github上查看。

2501_90252715的博客 2096

kafka架构

  kafka的组件介绍 Topic :消息根据Topic进行归类 Producer:发送消息者 Consumer:消息接受者 broker:每个kafka实例(server) Zookeeper:依赖集群保存meta信息。 1.Topics组件介绍 Topic:一类消息,每个topic将被分成多个partition(区),在集群的配置文件中配置。  partition:在存储层...

hellozhxy的博客 1414

Kafka Confluent 简介

Apache Kafka 消息分发组件,数据采集后先入Kafka。 Schema Registry Schema管理服务,消息出入kafka、入hdfs时,给数据做序列化/反序列化处理。 Kafka Connect 提供kafka到其他存储的管道服务,此次焦点是从kafka到hdfs,并建立相关HIVE表。 Kafka Rest Proxy 提供kafka的Rest API服务。 Kafk

石权的博客 1万+

深入探讨 Kafka 的分区(Partition)和分段(Segment)设计

深入探讨 Kafka 的分区(Partition)和分段(Segment)设计

daweias的博客 918

docker部署kafka监控服务kafka-exporter

1、kafka需要zookeeper管理,所以需要先安装zookeeper。 下载docker pull wurstmeister/zookeeper:latest版本 docker pull wurstmeister/zookeeper 启动镜像生成容器 docker run -d --restart="always" --name zookeeper -p 2181:2...

zchlove137的博客 4939

Kafka【三】Windows下安装Kafka集群

如果启动过程报错,主要是因为zookeeper和kafka的同步问题,请先执行cluster-clear.cmd文件,再执行cluster.cmd文件即可。集群启动命令后,会打开多个黑窗口,每一个窗口都是一个kafka服务,请不要关闭,一旦关闭,对应的kafka服务就停止了。因为kafka内置了ZooKeeper软件,所以此处将解压缩的文件作为ZooKeeper软件使用。将kafka1文件夹复制两份,改名为kafka2,kafka3。修改文件夹名为kafkazookeeper。

小小默:进无止境 2985

Kafka_05_Kafka高级应用

文章目录一、前言二、kafka的offset存储演变三、kafka的持久化3.1 kafka读写操作3.2 kafka中的Segment段四、kafka集群topic和partition数量设置五、kafka可视化监控六、尾声 一、前言 本文主要介绍kafka的offset存储演变、kafka的持久化、kafka集群topic和partition数量设置、kafka可视化监控。 二、kafka的offset存储演变 在kafka版本演进过程中,对于消费者offset的存储位置是发生了改变的。 对于kafka

毛毛的专栏 3134

如何用 Kafka Manager 实现 Kafka 集群全面监控

Apache Kafka 是现代大数据架构中不可或缺的组件,广泛用于日志收集、流处理、消息队列等场景。随着 Kafka 集群规模的增长和业务复杂度的提升,**对 Kafka 的实时监控变得尤为重要**。

九天的专栏 972

Kafka

Kafka 是一个分布式,支持分区的(partition),多副本的(replica),基于zookeeper协调的分布式消息系统 是一个分布式消息队列,生产者,消费者的功能 对消息保存时根据Topic进行分类,发送消息的为Producer,消息接受者为consummer,依赖于zookeeper broker:每个kafka实例 topic: partition: zookeeper:依赖集群保...

李sir的博客 296

【Kafka】Kafka认证与授权

Kafka的认证机制 概述 GSSAPI:使用的Kerberos认证,可以集成目录服务,比如AD。Kafka最小版本 0.9 PLAIN:使用简单用户名和密码形式,Kafka最小版本 0.10 SCRAM:主要解决PLAIN动态更新问题以及安全机制,Kafka最小版本 0.10.2 OAUTHBEARER:基于OAuth 2认证框架,Kafka最小版本 2.0 配置SASL\PLAIN 创建kafka_server_jaas.conf文件 这个文件是配置Broker服务端的JAAS,进入Kafka程序目录的

九师兄 7595

JSAPI微信支付(小程序)V3版本JAVA代码实战源码

1.1、商户通过JSAPI/小程序下单接口获取到发起支付的必要参数prepay_id后,再通过微信小程序调起微信支付收银台JSAPI/小程序下单_JSAPI支付|微信支付商户文档中心1.3、微信H5发起类似,结合文档,细微调整,前端返回类似,参考文档修改为微信内置浏览器调起支付即可。

java web 703

kafka存储-segment

介绍 消息队列在kafka中被称为Topic。因为kafka的分布式,Topic会有多个Partition组成,分布在不同的机器上。kafka为了进一步的增加读取效率,会将Partition分为多个Segment。这篇文章将详细的介绍Segment的消息的添加,查找和索引的恢复。 添加消息 ...

chuiyan0987的博客 1213

three.js中如何高效加载并播放GLB格式的3D动画

本文详细介绍了在three.js中高效加载并播放GLB格式3D动画的最佳实践。通过对比GLB与GLTF格式的优势,提供从环境搭建、模型加载到动画控制的完整解决方案,并分享性能优化技巧和常见问题排查方法,帮助开发者提升3D动画项目的开发效率和用户体验。

weixin_27890975的博客 360

安装配置Kafka,并使用Java集成Kafka

Kafka 是Java 语言编写的,因此需要在安装 Kafka 之前先安装 Java 运行环境。Kafka 支持 Java 8 及以上版本。可以通过以下命令检查 Java 运行环境的版本Kafka 的运⾏环境依赖于 ZooKeeper,Kafka 使用 ZooKeeper 进行分布式协调,因此在安装 Kafka 之前,需要先安装 ZooKeeper。

m0_73799407的博客 4310

告别ZotFile!Zotero 7+百度网盘文献同步全攻略(含软链接避坑指南)

本文针对Zotero 7用户,提供了告别ZotFile插件后,利用百度网盘实现文献附件同步的完整解决方案。详细讲解了如何通过设置Zotero链接目录与创建软链接,将附件库迁移至云盘,并附有详细的避坑指南,确保数据安全与多设备同步的稳定性。

mmm90的博客 584

STM32测测速---编码电机读取速度的计算

速度计算:轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算:PPR是电机的线数最后可以计算轮胎每转一圈的脉冲数为:轮胎每转一圈的脉冲数 = 9.6 × 11 × 4 = 422.4最后的速度公式简化为:速度 = (0.01 秒内产生的脉冲数 ∗ 0.055 ∗ π )/(0.01 ∗422.4​。

weixin_69414084的博客 3810

kafka实战

1. kafka介绍 1.1. 主要功能 根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:   1:It lets you publish and subscribe to streams of records.发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因   2:It lets ...

weixin_30614109的博客 6726

用Java实现对接豆包ai火山引擎详细版简单明了ai对话

第二部分代码实现。

m0_72637700的博客 8604

java kafka使用

是一款结合了目前Kafka监控工具的特点,重新研发的一块开源免费的Kafka集群优秀的监控工具在启动Kafka的脚本前,添加export JMX_PORT=9988上传解压,配置环境变量vim /etc/profile配置vim conf/system-config.properties#修改第4行,配置kafka集群别名#修改第5行,配置ZK集群地址#修改第64行,打开图标统计#修改第122行,开启mysql启动。

wste3567的博客 2194

基于单目视觉的四旋翼定点降落——如何通过mavros控制pixhawk(二)

    一直拖了这么久没有更新,怪我太懒啦~~~ 今天要特别感谢舒仔仔同学,我的好队友帮我写了这篇博文。这篇文章主要讲了如何通过mavros来控制pixhawk。硬件逻辑是这样子,我们先搞一个odroid(土豪上TX2),再用usb线将odroid与pixhawk连接。所以,odroid发送控制指令来控制pixhawk飞行。pixhawk与外界的通信协议是mavlink。ROS下面有个包叫mavr...

zhengyuxin0507的博客 1万+

【Java基础知识 1】Java入门级概述

优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。

学Java,找哪吒 16万+

Kafka + Kafka-UI

✅ 使用不需要 Zookeeper 的 Kafka—— 那就是Kafka KRaft 模式从 Kafka 2.8+ 起官方支持,3.3+ 开始默认推荐。去掉 zookeeper 依赖简化部署,性能更高更符合现在 Kafka 的新一代标准架构。

Bruce__taotao的博客 3419

beegfs源码分析

BeeGFS的客户端是由一个内核模块和两个系统服务组成的,这里咱们主要分析内核模块。由于BeeGFS的目录树解析,是在父目录DEntry里找子目录或文件DEntry,逐级迭代完成的,所以在Mount文件系统时,须要从管理节点获取根元数据节点的ID,而后再向根元数据节点查询根目录的DEntry的信息,为后续的目录解析打下基础。获取类似/data/beeond/data/dentries/38/51/root/#fSiDs#/文件fileId的父路径。1.1 FileID的生成。Session网络消息。

wfzy的博客 1912

Kafka:浅谈对Kafka的认识

消息系统都致力于让Consumer以最大的速率最快速的消费消息,一些消息系统比如Scribe和Apache Flume采用了Push模式,将消息推送到下游的Consumer。更进一步的性能优化是零拷贝的使用,也就是从磁盘日志到消费者客户端的数据传递,因为Kafka是MQ,对于msg不具备加工处理,所以得以实现。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个Broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处。注意:ack的默认值就是1。

王小二(海阔天空) 3247

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

使用Kafka UI管理Kafka

在使用Kafka进行开发时,有个可视化的管理界面有助于提高开发效率。目前已经有很多Kafka的管理界面实现。本文介绍的Kafka UI是一个新的实现。 该界面的GitHub地址是provectus/kafka-ui。GitHub - provectus/kafka-ui: Open-Source Web GUI for Apache Kafka ManagementOpen-Source Web GUI for Apache Kafka Management. Contribute to provectu

成富的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

kafka系列之camel-kafka

文章目录概述详解camel-kafka 概述 首先关于 camel 的基本概念和用法,以及 kafka 的基本概念和用法,这里就不啰嗦了。这篇文章假设你对二者都有基本的认识。 camel 本身是一个路由引擎,通过 camel 你可以定义路由规则,指定从哪里(源)接收消息,如何处理这些消息,以及发往哪里(目标)。camel-kafka 就是 camel 的其中一个组件,它从指定的 kafka top...

lucasma的博客 4908

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 关于feign开启hystrix导致用户鉴权失败
下一篇: Ribbon中的负载均衡算法实现
java_xth
博客等级 码龄9年 38粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值