
Kafka
文章平均质量分 89
探索云原生
一个云原生打工人的探索之路,专注云原生,Go,坚持分享最佳实践、经验干货。
同名 GZH 【探索云原生】欢迎关注~
展开
-
Kafka(Go)教程(十二)---Kafka 中的高水位和 Leader Epoch 机制
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/12-hw-leader-epoch/本文解释了 Kafka 中的高水位和 Leader Epoch 机制。1. 概述Kafka 系列相关代码见 Github高水位(High Watermark)是 Kafka 中非常重要的概念,而 Leader Epoch 是社区在 0.11 版本中新推出的,主要是为了弥补高水位机制的一些缺陷。2. 高水位(Hig原创 2021-11-28 11:42:29 · 1990 阅读 · 0 评论 -
Kafka(Go)教程(十一)---Consumer Group & Rebalance
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/11-consumer-group-rebalance/本文主要讲述了 Kafka 的消费者组(Consumer Group)和 消费者组的 Rebalance 及如何避免无效 Rebalance。Kakfa 相关代码见 Github1. 传统消息模型传统消息模型一般分为消息队列模型和发布订阅模型:1)消息队列模型的缺陷在于消息一旦被消费,就会从原创 2021-11-13 13:03:16 · 2532 阅读 · 0 评论 -
Kafka(Go)教程(十)---Kafka 是如何实现精确一次(exactly once)语义的?
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/10-exactly-once-impl/本文主要讲述了Kafka 消息交付可靠性保障以及精确处理一次语义的实现,具体包括幂等生产者和事务生产者。Kakfa 相关代码见 Github1. 概述所谓的消息交付可靠性保障,是指 Kafka 对 Producer 和 Consumer 要处理的消息提供什么样的承诺。常见的承诺有以下三种:最多一次(at m原创 2021-11-06 12:14:51 · 1436 阅读 · 0 评论 -
Kafka(Go)教程(九)---如何避免消息丢失?
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/09-avoid-msg-lost/本文主要从 Producer、Broker、Consumer 等 3 个方面分析了 Kafka 应该如何配置才能避免消息丢失。Kakfa 相关代码见 Github1. 概述在使用 MQ 的时候最大的问题就是消息丢失,常见的丢失情况如下:1)Producer 端丢失2)Broker 端丢失3)Consumer原创 2021-10-23 14:41:20 · 1093 阅读 · 0 评论 -
Kafka(Go)教程(八)---生产者压缩算法详解及源码分析
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/08-compression/本文主要分析了 Kafka 生产者压缩与解压逻辑以及注事事项点,最终通过 Go 客户端 sarama 演示了 压缩算法的具体使用,并通过源码分析了 Go 客户端 sarama 的具体实现。Kakfa 相关代码见 Github1. 概述压缩(compression)它秉承了用时间去换空间的经典 trade-off 思想,具体原创 2021-10-16 14:38:01 · 1067 阅读 · 0 评论 -
Kafka(Go)教程(七)---生产者分区机制原理剖析及实战
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/07-partition/本文主要分析了 Kafka 消息分区(Partition)机制的原理,包括常见分区策略以及自定义分区策略。最后对 Go 客户端 Sarama 具体实现进行了演示和分析。Kakfa 相关代码见 Github1. 概述Kafka 有主题(Topic)的概念,它是承载真实数据的逻辑容器,而在主题之下还分为若干个分区,也就是说 Kaf原创 2021-10-02 09:36:14 · 1005 阅读 · 0 评论 -
Kafka(Go)教程(六)---sarama 客户端 producer 源码分析
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/06-sarama-producer/本文主要通过源码分析了 Kafka Go sarama 客户端生产者的实现原理,包括消息分发流程,消息打包处理,以及最终发送到 Kafka 等具体步骤,最后通过分析总结出的常见性能优化手段。本文基于 sarama v1.29.11. 概述Kafka 系列相关代码见 Github具体流程如下图:Sarama原创 2021-09-20 11:45:19 · 1879 阅读 · 0 评论 -
Kafka(Go)教程(五)---Producer-Consumer API 基本使用
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/05-quick-start/本文主要讲解其中的 Producer API 和 Consumer API 在 Go Client sarama 中的使基本使用以及注意事项。1. 概述Kakfa 相关代码见 GithubKafka 有 5 个核心 API:Producer APIConsumer APIStream APIConnect API原创 2021-09-12 11:38:44 · 1722 阅读 · 3 评论 -
Kafka(Go)教程(四)---Kafka 线上部署与集群参数配置
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/04-kafka-product-install-config/本文主要记录了 Kafka 线上环境集群部署考虑因素以及非常非常重要的 Kafka 参数配置讲解。1. 概述Kafka 生产环境的一些注意事项,包括集群部署的考量和 集群配置参数的设置等,具体见下图:2. 集群部署2.1 操作系统主要为以下 3 方面:I/O 模型的使用Kafka原创 2021-09-04 11:04:04 · 533 阅读 · 0 评论 -
Kafka(Go)教程(三)---Kafka 相关概念介绍
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/03-kafka-introduction/本文为 Kafka 入门教程,主要包括相关概念介绍如: 消息引擎、 Kafka 相关术语、角色定位及其版本选择等等。1. 消息引擎Kafka 系列相关代码见 GithubKafka 是什么呢?用一句话概括一下:Apache Kafka 是一款开源的消息引擎系统。消息引擎系统 这个词可能比较陌生,国内一般用原创 2021-09-04 11:02:08 · 353 阅读 · 0 评论 -
Kafka(Go)教程(二)---hello Kafka
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/02-hello-kafka/本文记录了 Kafka Golang 客户端(sarama)基本使用。1. 概述Kafka 系列相关代码见 GithubKafka 的 Golang 客户端比较少,不像 Java 由官方维护,Golang 的都是社区在维护。这里选取的是 sarama,社区活跃度还行,不过封装度比较低,比较接近原生,不过有好处也有坏处吧,原创 2021-09-04 11:00:52 · 328 阅读 · 0 评论 -
Kafka(Go)教程(一)---通过docker-compose 安装 Kafka
来自:指月 https://www.lixueduan.com原文:https://www.lixueduan.com/post/kafka/01-install/本文记录了如何通过 docker-compose 快速启动 kafka,部署一套开发环境。1. 概述Kafka 是由 Apache 软件基金会旗下的一个开源 消息引擎系统。使用 docker-compose 来部署开发环境也比较方便,只需要提准备一个 yaml 文件即可。Kafka 系列相关代码见 Github2. docke原创 2021-08-28 13:16:57 · 494 阅读 · 0 评论