02 2025 档案

摘要:kafka是什么? Apache Kafka 是一个开源的分布式流处理平台,主要用于构建高性能、可扩展的实时数据管道和流式应用程序,广泛应用于消息队列、日志聚合、事件流处理和实时数据分析等场景。 kafka为何如此之快? Kafka 实现了零拷贝原理来快速移动数据,避免了内核之间的切换。Kafka 阅读全文
posted @ 2025-02-26 17:24 抒写 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Kafka 的日志保留机制 Kafka 的日志保留机制是其存储管理的核心功能之一,用于控制消息的存储时间和清理策略。通过合理配置日志保留机制,可以有效管理磁盘空间,同时保证系统的性能和可用性。 1. 日志保留策略 Kafka 提供了两种主要的日志保留策略:基于时间的保留和基于大小的保留。 基于时间的 阅读全文
posted @ 2025-02-26 16:23 抒写 阅读(4) 评论(0) 推荐(0) 编辑
摘要:1. 什么是零拷贝(Zero Copy)? 零拷贝是一种计算机操作系统中的技术,用于减少数据在内存中的拷贝次数,从而提高数据传输的效率。传统的数据传输过程中,数据通常需要从磁盘读取到内核缓冲区,再从内核缓冲区拷贝到用户空间缓冲区,最后从用户空间缓冲区拷贝到网络缓冲区进行发送。这个过程中涉及多次数据拷 阅读全文
posted @ 2025-02-26 16:16 抒写 阅读(5) 评论(0) 推荐(0) 编辑
摘要:定义 Apache Kafka 是一个开源的分布式流处理平台,由 LinkedIn 开发并于 2011 年贡献给 Apache 软件基金会,随后成为 Apache 的顶级项目。Kafka 主要用于构建高性能、可扩展的实时数据管道和流式应用程序,广泛应用于消息队列、日志聚合、事件流处理和实时数据分析等 阅读全文
posted @ 2025-02-26 16:15 抒写 阅读(3) 评论(0) 推荐(0) 编辑
摘要:Kafka 的日志存储结构是其高性能和高可靠性的核心设计之一。它通过顺序写入、分段存储和稀疏索引等机制,实现了高效的数据存储与检索。以下是 Kafka 日志存储结构的详细解析: 一、日志存储的核心概念 1. 日志(Log) Kafka 的每个分区(Partition)对应一个日志文件。 日志文件是消 阅读全文
posted @ 2025-02-26 16:10 抒写 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Kafka 作为分布式系统,其设计在 CAP 理论(一致性 Consistency、可用性 Availability、分区容错性 Partition Tolerance)中主要遵循 CP 模型(即优先保证 一致性 和 分区容错性),但在特定配置下可调整为偏向 AP。以下是详细分析: 一、CAP 理论 阅读全文
posted @ 2025-02-26 15:32 抒写 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1. CAP 理论简介 CAP 理论,即 Brewer 定理,由加州大学伯克利分校的计算机科学家 Eric Brewer 在 2000 年提出。该理论指出:一个分布式系统无法同时满足以下三个特性: Consistency(一致性) Availability(可用性) Partition Tolera 阅读全文
posted @ 2025-02-26 15:19 抒写 阅读(5) 评论(0) 推荐(0) 编辑
摘要:在 Apache Kafka 中,实现多线程消费主要有两种常见方式:每个线程维护一个 KafkaConsumer 实例 和 单 KafkaConsumer 实例 + 多 worker 线程。以下是两种方式的实现方法、优缺点及示例代码: 1. 每个线程维护一个 KafkaConsumer 实例 这种方 阅读全文
posted @ 2025-02-26 15:09 抒写 阅读(3) 评论(0) 推荐(0) 编辑
摘要:Kafka的消费者再平衡(Rebalance)机制是 Kafka 消费者组(Consumer Group)管理的核心功能之一,用于动态调整消费者和分区之间的分配关系,以实现负载均衡和容错性。 消费者的再平衡是指分区的所属权从一个消费者转移到另一消费者的行为,它为消费组具备高可用性和伸缩性提供保障, 阅读全文
posted @ 2025-02-26 14:53 抒写 阅读(7) 评论(0) 推荐(0) 编辑
摘要:Apache Kafka 提供了高效的压缩机制,用于减少消息的存储空间和网络传输开销,从而提高系统的吞吐量和性能。以下是 Kafka 的压缩机制及其工作原理: 1. Kafka 支持的压缩算法 Kafka 支持以下几种压缩算法,每种算法都有其特点和适用场景: GZIP:高压缩率,但压缩和解压缩速度较 阅读全文
posted @ 2025-02-26 14:30 抒写 阅读(4) 评论(0) 推荐(0) 编辑
摘要:定义 微服务(Microservices)是一种软件架构风格,它将一个大型应用程序拆分为一组小型、独立、松耦合的服务,每个服务专注于完成单一特定的业务功能,并通过轻量级通信机制相互协作(如HTTP/REST、gRPC、消息队列等),共同构建完整的系统,并且每个服务都可以独立开发、部署和扩展。 核心特 阅读全文
posted @ 2025-02-24 11:52 抒写 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、调优核心目标 减少GC停顿时间(降低延迟) 提高吞吐量(单位时间处理更多请求) 合理控制内存占用(避免频繁的Full GC或内存溢出OOM) 优化资源利用率(合理分配内存和CPU资源) 二、基础内存参数设置 初始堆内存(-Xms):设置JVM启动时分配的堆内存大小。 最大堆内存(-Xmx):设置 阅读全文
posted @ 2025-02-14 14:46 抒写 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、内置工具 1. jps(Java Virtual Machine Process Status Tool) 功能:列出当前用户的所有Java进程及其PID。 常用命令:jps -l # 显示主类全名 jps -v # 显示JVM启动参数 2. jstat(JVM Statistics Monit 阅读全文
posted @ 2025-02-14 14:40 抒写 阅读(12) 评论(0) 推荐(0) 编辑
摘要:git merge 和 git rebase 是 Git 中整合分支变化的两种核心方式,它们的核心区别在于如何保留分支历史记录和提交结构的差异。以下是两者的详细对比: 1. 核心机制对比 特性 git merge git rebase 历史记录 保留分支的完整历史(包括分支拓扑结构) 重写历史,将提 阅读全文
posted @ 2025-02-14 10:48 抒写 阅读(12) 评论(0) 推荐(0) 编辑
摘要:定义 二叉树是一种特定类型的树数据结构,每个节点最多有两个子节点,通常称为左子节点和右子节点。 它是一种递归定义的数据结构: 空树: 非空树: 由一个根节点和两个不相交的二叉树(左子树和右子树)组成。 性质 节点数: 如果二叉树的高度为h(根节点的高度为0),则最多有 2h+1−1 个节点。 第i层 阅读全文
posted @ 2025-02-13 15:39 抒写 阅读(4) 评论(0) 推荐(0) 编辑
摘要:树的定义 树(Tree)是一种非线性数据结构,由节点(或称为顶点)和边组成。树具有层次结构,每个节点可以有多个子节点,但每个子节点只能有一个父节点。树的顶部节点称为根节点(Root),根节点没有父节点。树中的节点可以分为内部节点(有子节点的节点)和叶子节点(没有子节点的节点)。 树的数学定义 树可以 阅读全文
posted @ 2025-02-13 15:10 抒写 阅读(14) 评论(0) 推荐(0) 编辑
摘要:数组(Array) 定义 数组是一种线性数据结构,用于存储固定数量的相同类型元素。数组中的元素在内存中是连续存储的,可以通过索引直接访问。 特点 存储方式:元素在内存中连续存储。 访问方式:通过索引直接访问,时间复杂度为O(1)。 插入和删除:需要移动大量元素,时间复杂度为O(n)。 存储空间:利用 阅读全文
posted @ 2025-02-13 11:43 抒写 阅读(12) 评论(0) 推荐(0) 编辑
摘要:定义 数据结构(Data Structure)是计算机中存储、组织数据的方式,是指定义了若干操作的一组性质相同的数据元素的集合。包括以下方面: 数据元素:数据结构中的基本单位,可以是简单的数据类型(如整数、浮点数、字符等),也可以是复杂的数据类型(如对象、结构体等)。 逻辑结构:数据元素之间的逻辑关 阅读全文
posted @ 2025-02-12 18:09 抒写 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示