kafka
文章平均质量分 77
miller.zc
记录和分享一些工作和学习中的笔记
展开
-
Flink基础原理
第二步,由flinkClient依据StreamGraph 进行优化,将数据不需要跨taskmanager进行分组聚合等操作的(One-to-One关系),比较简单的直接流向后一个算子的这种,合并成一个subtask。允许同一个job下的subtask(子任务,也就是分解出来的各个算子)可以共享slot,这样可以使得同一个slot运行整个job(每个task)的流水线(pipleline)、TaskManager最多能同时并发执行的任务是可以控制的,那就是3个,因为不能超过slot的数量。原创 2022-11-15 17:18:12 · 1447 阅读 · 3 评论 -
分布式事务-TCC
一、TCC的本质为了解决强一致性的问题,一个分布式事务,要等被调用端完全成功后,调用端这边才能成功。如果被调用端失败了,调用端也要回滚事务。所以就将调用者端和被调用端都分为三个阶段(try、Confifirm、Cancel)try:负责检验资源是否够,也就是预留资源出来。Confifirm:负责真正提交业务处理。cancel:负责回滚资源。步骤:1、调用端的try方法,先预留出一部分资源,也就是更新数据的状态。2、try执行成功后,就会执行Confifirm方法,也就是真原创 2020-12-21 10:00:21 · 716 阅读 · 1 评论 -
kafka实现分布式事务
一、分布式事务的本质本质上要解决,逻辑上是一个事务,但是代码又是在两个进程里面实现,spring的事务管理不能跨进程的问题。那么就需要用第三方介质记录当前这个分布式事务逻辑的状态,一般用数据库或redis缓存记录。二、kafka+本地消息表实现的关键点生产者:生产者本地业务逻辑执行完成之后,往数据库插入一条待发送的数据(在一个事务内,要么全部成功,要么全部失败)然后从数据库去取这条待发送的数据,发送到kafka,状态更新为已发送(一个事务)。消费者:消费者从kafka取出消息之后,将消原创 2020-12-21 10:00:11 · 4004 阅读 · 1 评论 -
kafka消息重复和丢失的场景及解决方案分析
一、消息丢失和重复消费生产者:1、生产者丢失消息 (1)、丢失场景 配置文件里面,ack设置为0,也就是生产者发送之后, 不管分区副本(leader和follower)是否收到都不管了, 如果发送失败,就会消息丢失。 ack设置为1,也就是生产者发送之后,只要leader接收到了,就会返回成功, follower没来及同步的时候leader挂掉,就会消息丢失。 (2)、解决办法: 设置ack=all / -1,保证leader和follower分区都收到之后,原创 2020-12-21 10:00:01 · 1331 阅读 · 1 评论 -
Kafka生产者和消费者
一、生产者1、分区的原因方便在集群中扩展:每个分区都可以通过调整副本数,改变分区副本所占的kafka节点。每个topic又有多个分区,这样就可以灵活的改变集群的大小和所占的机器数可以提高并发:同一个topic的数据,可以分散到不同的分区,而不同的分区数据可以被不同的Consumer并发消费。2、分区的原则我们需要将producer发送的数据封装成一个ProducerRecord对象。(1)、指明 partition 的情况下,数据往指定分区里面发送。(2)、没有指明 par原创 2020-12-21 09:59:40 · 1699 阅读 · 1 评论 -
Kafka工作流程及文件存储机制
一、基础架构1、Kafka中消息是以topic进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。2、topic是逻辑上的概念,而partition是物理上的概念3、每个partition对应于一个log文件,该log文件中存储的就是producer生产的数据 (log文件的存储位置是根据partition的leader副本在哪个Broker上)4、Producer生产的数据会被不断追加到该log文件末端,且每条数据都有自己的offset(偏移量)。5、消费者组中的原创 2020-12-21 09:59:14 · 131 阅读 · 1 评论 -
kafka核心概念
一、Kafka核心概念1、Broker(数据节点)在Kafka集群里面,一台服务器里面的一个kafka进程,就算是一个Broker。2、Topic(数据主题)是一个逻辑概念,将数据往不同的主题上发,一个主题包含了多个分区,一个分区又有多个副本,每个副本都存在于不同的Broker上,所以往topic上发送的数据,最终会发送到某个分区副本(leader)上(也就是某个Broker的log文件中)3、Partition(数据分区)每个Topic有一个或者多个分区,这些分区有一个或者多个副本,原创 2020-12-20 12:40:17 · 149 阅读 · 1 评论 -
Kafka(一)Kafka的简介与架构
一、Kafka中的术语解释(1)、producer: 生产者,上图有两个生产者,往同一个往topic(主题)发消息。(2)、topic:主题,这是一个逻辑概念,就和数据库表一样,数据库表可以存在于多个数据库,同样发送到topic的数据也会分散到不同的kafka节点上。(3)、partition:分区,一个topic可以有多个分区,每个分区会依据topic的副本数创建对应数量的分区副本,分散在不同的kafka节点上。比如一个topic有3个分区,每个分区有3个副本,那么每个分区就会原创 2020-12-20 12:37:22 · 147 阅读 · 1 评论