【Kafka之轨迹】Kafka 入门使用

Kafka生产者消息追踪:监控消息流转路径 Apache Kafka 作为一款高吞吐量、低延迟的分布式发布-订阅消息系统,在现代数据架构中扮演着至关重要的角色。它被广泛应用于实时数据流处理、日志收集、事件溯源、微服务通信等各种场景。随着数据规模的不断增长和业务复杂性的提升,对 Kafka 消息的监控和追踪需求也日益迫切。@Override// 生成消息 ID// 获取当前时间戳// 添加消息 ID、时间戳和自定义元数据// 返回修改后的消息headers@Override// 处理消息发送成功或失败的回调。 阅读详情


0. 前言

本博客使用的版本是 0.11.0.3
各版本的区别可以自行了解,大致可选 0.11.x 1.x 2.x 三种版本

① 使用的集群是 Docker 搭建的,可参见:
【Docker x Hadoop】使用 Docker 搭建 Hadoop 集群(从零开始保姆级)

② 由于 Docker 搭建的集群有局限性,需要频繁为 Docker 容器动态添加端口映射(下边也会用到),可参见:
【Docker之轨迹】为正在运行中的容器动态添加端口映射(使用 iptables,附删除 iptables 规则)

③ 集群之间的分发脚本 xsync 参照尚硅谷,可参见:
【Linux之轨迹】Linux 各种实用小功能合集(持续补充)

④ 该版本的 kafka 需要用到 zookeeper,简单的搭建流程可参见:
【Zookeeper之轨迹】Zookeeper 入门使用(集群使用 Docker 模拟)

⑤ 由于 Kafka 需要占用较多内存,必要的话需要使用 swap 交换分区(相当于虚拟内存),可参见:
【Linux之轨迹】1核2G 内存不够怎么办?Swap 交换分区解决内存不足问题


1. 安装、启动与关闭

① 下载与配置

下载地址:http://kafka.apache.org/downloads

在这里插入图片描述

上传压缩包到服务器集群任意一台,解压,然后使用 xsync 分发到集群中的各个容器,再

tar -zxvf kafka_2.11-0.11.0.3.tgz
xsync kafka_2.11-0.11.0.3
rm -rf kafka_2.11-0.11.0.3.tgz

# 这一步改名可选
mv kafka_2.11-0.11.0.3 kafka_0.11.0.3

然后进行配置

1)	在 kafka_0.11.0.3 目录下新建文件夹 data 作为临时存放数据的文件夹
	mkdir data

2)	然后进入 config 目录修改 server.properties 文件
	vim server.properties

下面是对配置文件的修改

1)	首先修改 broker.id,每台服务器需要唯一,下边是我的配置
   `hadoop001:broker.id=1
	hadoop002:broker.id=2
	hadoop003:broker.id=3`

2)	接着设置主题允许被删除(将注释打开)
   `delete.topic.enable=true`

3)	修改数据暂存的目录,默认存放在 tmp 中会被定时删除,需修改为我们刚刚新建的 data 文件夹路径
	名字看着像日志文件输出的地方,但实际存放的是真实数据的
   `log.dirs=/xxx/kafka_0.11.0.3/data`

4)	修改 zookeeper 连接信息,以下是我的配置供参考(用逗号隔开)
   `zookeeper.connect=hadoop001:2181,hadoop002:2181,hadoop003:2181`

5)	然后将配置文件分发到各台服务器上(data 文件夹也顺带分发了)
   `xsync data/ config/server.properties`

6)	最后修改每一台服务器的 broker.id,就完事了

② 启动与关闭

首先确保三台服务器的 zookeeper 都已经启动,然后执行:

bin/kafka-server-start.sh config/server.properties
》》》 出现问题
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; eory' (errno=12)
原因是内存不足,查了我的服务器,发现 2G 内存剩下不到 1G
然后在 kafka-server-start.sh 中发现了这个东西

参数意思为:
-Xmx Java Heap 最大值,默认值为物理内存的 1/4
-Xms java Heap 初始值,Server 端 JVM 最好将 -Xms 和 -Xmx 设为相同值
里边要求 Kafka 启动是必须有 1G 空闲的内存
很明显我没有,况且 2G 内存要启动 3 台显然也不合理
所以这里我们把它改小一点,就 256M 应该可以,修改:

1)	vim bin/kafka-server-start.sh
   修改为:export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"

2) 分发到各台服务器
   xsync bin//kafka-server-start.sh

再次启动,就可以了(后边填坑:分发完毕后,记得将 broker.id 修改呀)
此外,如果内存实在不足,可以考虑使用 swap 交换分区作为虚拟内存使用
《《《 问
Kafka消息轨迹追踪:分布式系统调试利器 本文聚焦于Kafka消息轨迹追踪这一分布式系统调试的关键技术。首先介绍Kafka消息轨迹追踪的概念基础,包括其在分布式系统中的背景、发展历史以及问题空间。接着阐述其理论框架,从第一性原理进行推导,并分析理论局限性和竞争范式。在架构设计方面,对系统进行分解,构建组件交互模型并可视化展示。实现机制部分涵盖算法复杂度分析、代码实现及性能考量。实际应用中探讨实施策略、集成方法、部署和运营管理。高级考量关注扩展动态、安全和伦理问题以及未来发展方向。 阅读详情

相关推荐

【Kafka】Kafka事务是怎么实现的

如果采用这种方案,那么一般是按照不同的延时等级来划分的,比如设定5s、10s、30s、1min、2min、5min、10min、20min、30min、45min、1hour、2hour这些按延时时间递增的延时等级,延时的消息按照延时时间投递到不同等级的主题中,投递到同一主题中的消息的延时时间会被强转为与此主题延时等级一致的延时时间,这样延时误差控制在两个延时等级的时间差范围之内(比如延时时间为17s的消息投递到30s的延时主题中,之后按照延时时间为30s进行计算,延时误差为13s)。

九师兄 4290

【遥感数字图像处理(朱文泉)】第四章 变换域处理方法

变换域的处理方法

甜子yu的博客 4311

VINS技术路线与代码详解

VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。 VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 参考文档:1.VINS-Mono A R...

wangshuailpp的博客 7万+

从翼型到湍流:用生活化案例图解空气动力学核心概念(中英双语版)

本文通过飞机机翼、F1赛车、高尔夫球等生活化案例,图解空气动力学核心概念。深入浅出地解释了攻角如何产生升力、边界层与流动分离如何影响阻力、马赫数如何划分速度世界,以及涡流与湍流的特性与应用。文章还介绍了计算流体动力学(CFD)这一现代数字风洞工具,帮助读者直观理解这些塑造现代交通与运动设计的无形之力。

metaverse5vr的博客 475

RANSAC地面点分割:从原理到C++实战优化

本文深入解析RANSAC算法在点云地面分割中的原理与C++实战优化,涵盖动态迭代次数、自适应阈值等关键技巧,通过并行计算和内存访问优化提升性能,适用于激光雷达点云处理。

weixin_29015051的博客 277

Windows下用Docker部署RagFlow的5个常见错误及解决方法(附详细日志分析)

本文针对Windows系统下使用Docker部署RagFlow的常见难题,提供了详细的避坑指南。文章深度剖析了WSL2配置、端口冲突、文件权限、资源限制及网络通信这五个典型错误场景,并结合具体日志分析,给出了经过验证的解决方案,帮助开发者高效完成部署。

weixin_29233857的博客 179

避开模板匹配的坑:OpenCVSharp中边缘梯度算法的优化实践

本文深入探讨了OpenCVSharp中边缘梯度算法在模板匹配中的优化实践,解决了传统方法在尺度变化、角度旋转和光照差异下的局限性。通过Sobel算子提取边缘梯度特征,结合轮廓检测和多尺度匹配策略,显著提升了匹配的鲁棒性和准确性。文章还分享了并行计算、内存访问优化等实战技巧,适用于工业检测和自动化识别场景。

http9protocoller的博客 198

【2026OD新机考】【不定滑窗】20260415-API请求日志去重分析【Py/Java/C++/C/JS/Go六种语言OD真题】【欧弟算法】全网注释最详细分类最全的华子OD真题题解

中找到所有的连续的相同元素,同时统计对应的连续相同元素对应的值的平均值。:当右指针为第一个元素(没有前一个元素),或者右指针对应的元素。某微服务系统的日志监控平台需分析API调用记录,日志含大量。相等,说明当前元素仍然属于同一个相同元素窗口,将当前元素值。中的所有元素均相等,并且计算窗口和情况即可。请实现一个函数,对给定的日志数据去重合并处理。位置,表示开启一个新的窗口,此时需要重置窗口和。,为了优化重复的请求记录,存储和后续分析需对。:对应的响应时间数组(毫秒)。重新置为当前右指针的元素值。

weixin_48157259的博客 112

【RH850/U2A】:HSM与APP通信(中断方式)

HSM与APP通信(中断方式)

1993

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 【Linux之轨迹】1核2G 内存不够怎么办?Swap 交换分区解决内存不足问题
下一篇: 【C语言】打印二叉树树形(制表符实现,清晰+高拓展)(2022-10-22 更新—偏移量说明)
寒冰小澈IceClean
博客等级 码龄6年 344粉丝 79原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰小澈IceClean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值