【Kafka实战指南】Kafka安装及日志存储结构

简介: 【Kafka实战指南】Kafka安装及日志存储结构

kafka安装


Kafka的安装

tar -zxvf kafka_2.11-2.1.1.tgz -C /usr/local/
复制代码



查看配置文件

[root@es1 config]# pwd
/usr/local/kafka/config
[root@es1 config]# ll
    total 84
    -rw-r--r--. 1 root root  906 Feb  8  2019 connect-console-sink.properties
    -rw-r--r--. 1 root root  909 Feb  8  2019 connect-console-source.properties
    -rw-r--r--. 1 root root 5321 Feb  8  2019 connect-distributed.properties
    -rw-r--r--. 1 root root  883 Feb  8  2019 connect-file-sink.properties
    -rw-r--r--. 1 root root  881 Feb  8  2019 connect-file-source.properties
    -rw-r--r--. 1 root root 1111 Feb  8  2019 connect-log4j.properties
    -rw-r--r--. 1 root root 2262 Feb  8  2019 connect-standalone.properties
    -rw-r--r--. 1 root root 1221 Feb  8  2019 consumer.properties
    -rw-r--r--. 1 root root 4727 Feb  8  2019 log4j.properties
    -rw-r--r--. 1 root root 1925 Feb  8  2019 producer.properties
    -rw-r--r--. 1 root root 6865 Jan 16 22:00 server-1.properties
    -rw-r--r--. 1 root root 6865 Jan 16 22:00 server-2.properties
    -rw-r--r--. 1 root root 6873 Jan 16 03:57 server.properties
    -rw-r--r--. 1 root root 1032 Feb  8  2019 tools-log4j.properties
    -rw-r--r--. 1 root root 1169 Feb  8  2019 trogdor.conf
    -rw-r--r--. 1 root root 1023 Feb  8  2019 zookeeper.properties
复制代码



修改配置文件server.properties


设置broker.id 这个是kafka集群区分每个节点的唯一标志符

image.png


设置kafka的数据存储路径

image.png


注:这个目录下不能有其他非kafka的目录,不然会导致kafka集群无法启动



设置是否可以删除topic


(默认情况先kafka的topic是不允许删除的)


image.png


Kafka的数据保留的时间,默认是7天

image.png


Log文件最大的大小,如果log文件超过1g会创建一个新的文件

image.png


Kafka连接的zk的地址和连接kafka的超时时间

image.png


默认的partition的个数

image.png



启动kafka


  • 启动方式1,kafka只能单节点启动,所以每个kafka节点都需要手动启动,下面的方式阻塞的方式启动。

image.png

启动方式2,守护的方式启动

image.png



kafka操作


查看当前kafka集群已有的topic

image.png


注意:这里连接的zookeeper,而不是连接的kafka




创建topic,指定分片和副本个数

image.png




注:


  • replication-factor:副本数
  • Topic:主题名


如果当前kafka集群只有3个broker节点,则replication-factor最大就是3了,下面的例子创建副本为4,则会报错



删除topic

image.png


查看topic信息

image.png



启动生产者生产消息,kafka自带一个生产者和消费者的客户端 A、启动一个生产者,注意此时连的9092端口,连接的kafka集群

image.png

B、启动一个消费者,注意此时连接的还是9092端口,在0.9版本之前连接的还是2181端口

这里我们启动2个消费者来测试一下

image.png


注:如果不指定的消费者组的配置文件的话,默认每个消费者都属于不同的消费者组

C、发送消息,可以看到每个消费者都能收到消息

image.png


D、Kakfa中的实际的数据

image.png




数据结构


Topic是一个逻辑上的概念,而partition是物理上的概念


每个partition又有副本的概念


每个partition对应于一个log文件,该log文件中存储的就是生产者生成的数据,生产者生成的数据会不断的追加到该log的文件末端,且每条数据都有自己的offset,消费者都会实时记录自己消费到了那个offset,以便出错的时候从上次的位置继续消费,这个offset就保存在index文件中


kafka的offset是分区内有序的,但是在不同分区中是无顺序的,kafka不保证数据的全局有序





kafka原理


由于生产者生产的消息会不断追加到log文件的末尾,为防止log文件过大导致数据定位效率低下,Kafka采用分片和索引的机制,将每个partition分为多个segment,每个segment对应2个文件


  • index文件和log文件,这2个文件位于一个相同的文件夹下,文件夹的命名规则为topic名称+分区序号

image.png

Indx和log的文件的文件名是当前这个索引是最小的数据的offset




Kafka如何快速的消费数据呢?


image.png

  • Index文件中存储的数据的索引信息,第一列是offset,第二列这这个数据所对应的log文件中的偏移量,就像我们去读文件,使用seek()设置当前鼠标的位置一样,可以更快的找到数据


  • 如果要去消费offset为3的数据,首先通过二分法找到数据在哪个index文件中,然后在通过index中offset找到数据在log文件中的offset;这样就可以快速的定位到数据,并消费


  • 所以kakfa虽然把数据存储在磁盘中,但是他的读取速度还是非常快的。




相关文章
|
5月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
299 7
|
8月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
608 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
8月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
263 11
|
6月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
7月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
943 4
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
868 5
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
932 6
|
9月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
7月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。