Title

08 2021 档案

摘要:# 消息重复的场景及解决方案 消息重复和丢失是kafka中很常见的问题,主要发生在以下三个阶段: 1. 生产者阶段 2. broke阶段 3. 消费者阶段 ## 1.1 生产者阶段重复场景 ### 1.1.1 根本原因 生产发送的消息没有收到正确的broke响应,导致生产者重试。 生产者发出一条消息 阅读全文
posted @ 2021-08-22 23:41 apeGcWell 阅读(358) 评论(0) 推荐(0)
摘要:我们假设有一个topic,单分区,副本因子是2,即一个Leader副本和一个Follower副本。我们看下 当producer发送一条消息时,broker端的副本到底会发生什么事情以及分区HW是如何被更新的 ## 1 初始状态 初始时Leader和Follower的HW和LEO都是0(严格来说源代码 阅读全文
posted @ 2021-08-22 23:40 apeGcWell 阅读(149) 评论(0) 推荐(0)
摘要:# 1 一致性保证 ## 1.1 概念 + **水位标记** 水位或水印(watermark)一词,表示位置信息,即位移(offset)。Kafka源码中使用的名字是高水位,HW(high watermark)。 + **副本角色** Kafka分区使用多个副本(replica)提供高可用。 + * 阅读全文
posted @ 2021-08-22 23:39 apeGcWell 阅读(103) 评论(0) 推荐(0)
摘要:1 集群控制器 实际时是一个broker,负责leader分区选举 1.1 控制器选举 集群里第一个启动的broker在Zookeeper中创建临时节点 /controller 其他broker在该控制器节点创建Zookeeper watch对象,使用Zookeeper的监听机制接收该节点的变更 即 阅读全文
posted @ 2021-08-22 23:38 apeGcWell 阅读(79) 评论(0) 推荐(0)
摘要:# 1 稳定性-事务 ## 1.1 事务场景 1. 如producer发的多条消息组成一个事务这些消息需要对consumer同时可见或者同时不可见 。 2. producer可能会给多个topic,多个partition发消息,这些消息也需要能放在一个事务里面, 这就形成了一个典型的分布式事务。 3 阅读全文
posted @ 2021-08-21 23:43 apeGcWell 阅读(472) 评论(0) 推荐(0)
摘要:## 1零拷贝机制 **零拷贝**:零拷贝就是一种避免 CPU 将数据从一块存储拷贝到另外一块存储的技术,数据直接从磁盘文件复制到网卡设备中,而不需要经由应用程序之手 。零拷贝大大提高了应用程序的性能,减少了内核和用户模式之间的上下文切换 。 **传统IO** 比如:读取文件,socket发送 传统 阅读全文
posted @ 2021-08-21 23:40 apeGcWell 阅读(56) 评论(0) 推荐(0)
摘要:## 1.1.1 概念 ### 1.1.1.1 消费者、消费组 消费者从订阅主题消费数据时,消费偏移量会保存在 __consumer_offsets主题中 消费者还可以将自己的偏移量存储到Zookeeper,需要设置offset.storage=zookeeper。 推荐使用Kafka存储消费者的偏 阅读全文
posted @ 2021-08-17 17:25 apeGcWell 阅读(348) 评论(0) 推荐(0)
摘要:### 1.1 消息发送 #### 1.1.1 数据生产流程解析 ![image-20210816213642191](https://gitee.com/gcwel/datas/raw/master/src/main/resources/images/kafka-pr-1.png) ``` 1. 阅读全文
posted @ 2021-08-16 23:37 apeGcWell 阅读(73) 评论(0) 推荐(0)
摘要:版本信息kafka 1.0.2 spring-kafka高版本兼容低版本 pom <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</ 阅读全文
posted @ 2021-08-15 21:55 apeGcWell 阅读(122) 评论(0) 推荐(0)
摘要:版本信息kafka 1.0.2 1生产者 生产者主要的对象有: KafkaProducer , ProducerRecord 。 其中 KafkaProducer 是用于发送消息的类, ProducerRecord 类用于封装Kafka的消息。 KafkaProducer 的创建需要指定的参数和含义 阅读全文
posted @ 2021-08-15 20:39 apeGcWell 阅读(51) 评论(0) 推荐(0)
摘要:版本信息kafka 1.0.2 1.1 topic的创建与查询 1.1.1 创建topic 创建分区数为1 副本数为1 [root@lew1 app]# kafka-topics.sh --zookeeper lew1:2181 --create --topic gc_test1 --partiti 阅读全文
posted @ 2021-08-15 19:03 apeGcWell 阅读(181) 评论(0) 推荐(0)
摘要:1 前提准备 1.1 jdk及环境变量 [root@lew1 ~]# java -version java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bi 阅读全文
posted @ 2021-08-15 18:08 apeGcWell 阅读(59) 评论(0) 推荐(0)
摘要:​内容摘抄自《深入理解Java虚拟机 第三版》 java虚拟机在运行java程序时会把内存划分为几个不同的数据区域,这些区域各有用途,创建及销毁时间。根据《Java虚拟机规范》规定,java虚拟机包含以下几个内存区域:程序计数器,虚拟机栈,堆,方法区,本地方法栈 1.1.1 程序计数器 程序计数器( 阅读全文
posted @ 2021-08-15 01:02 apeGcWell 阅读(146) 评论(0) 推荐(0)
摘要:1.4基本架构 消息和批次 Kafka的数据单元称为消息。可以把消息看成是数据库里的一个“数据行”或一条“记录”。消息由字节数组组成。 消息有键,键也是一个字节数组。当消息以一种可控的方式写入不同的分区时,会用到键。为了提高效率,消息被分批写入Kafka。批次就是一组消息,这些消息属于同一个主题和分 阅读全文
posted @ 2021-08-14 23:53 apeGcWell 阅读(55) 评论(0) 推荐(0)
摘要:核心概念 1.1 kafka角色 1.1.1 Producer 生产者-创建消息 该角色将消息发布到Kafka的topic中。broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的 segment 文件中 一般情况下,一个消息会被发布到一个特定的主题上。 默认情况下通过轮 阅读全文
posted @ 2021-08-14 23:49 apeGcWell 阅读(50) 评论(0) 推荐(0)
摘要:1.1 介绍 ​ Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基 于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日 志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并 阅读全文
posted @ 2021-08-14 23:32 apeGcWell 阅读(273) 评论(0) 推荐(0)
摘要:1. docker compose docker compose的步骤 * 创建Dockerfilee * service * docker-compose.ymal * docker-compose up 作用:批量容器编排 2. 安装docker compose 下载 curl -L https 阅读全文
posted @ 2021-08-12 00:00 apeGcWell 阅读(42) 评论(0) 推荐(0)
摘要:docker 0 docker 安装 安装连接 # 移除 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ dock 阅读全文
posted @ 2021-08-11 23:56 apeGcWell 阅读(131) 评论(0) 推荐(0)
摘要:1 使用 1.1 准备数据 user.csv 392456197008193000,张三,20,0 267456198006210000,李四,25,1 892456199007203000,王五,24,1 492456198712198000,赵六,26,2 392456197008193000, 阅读全文
posted @ 2021-08-11 23:29 apeGcWell 阅读(144) 评论(0) 推荐(0)
摘要:<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shaded-client</artifactId> <version>1.4.3</version> </dependency> <dependency> <gro 阅读全文
posted @ 2021-08-11 16:54 apeGcWell 阅读(1445) 评论(0) 推荐(0)