最近在做利用Spark streaming和Kafka进行数据分析的研究, 整理一些相应的开发文档, 做了一些代码实践。 本文特意将这些资料记录下来。
本文最后列出了一些参考的文档,实际调研中参考了很多的资料,并没有完全将它们记录下来, 只列出了主要的一些参考资料。 当前的版本:
Spark: 1.2.0 Kafka: 0.8.1.1
Spark Stre
转载
2024-08-06 21:26:54
30阅读
复制 Kafka可以通过可配置的服务器数量复制每个主题分区的日志(可以为每个主题设置复制因子)。这允许在集群中的服务器发生故障时自动故障转移到其他副本,因此在存在故障的情况下,消息仍然可用。 其他消息传递系统提供了一些复制相关的功能,这似乎是一个固定的事情,没有被大量使用,并且有很大的缺点:从站是非活动的,吞吐量受到很大的影响,虚拟手动配置等。默认情况下,Kafka旨在与复制配合使用 - 事实
1. AR(Assigned Repllicas)AR是指分区中的所有副本集理想情况下AR=ISR,OSR=0实际情况下AR = ISR + OSR2. ISR(in sync replica):动态维护的一组同步副本,只有这个组的成员才可以成为leaderleader挂掉时,在ISR集合中选举出一个follower作为leader提供服务一条信息必须同步到ISR中的所有副本才认为提交成功当ISR
转载
2024-03-27 08:41:14
102阅读
1、Broker配置1.1、复制系数 主题级别的配置参数是replication.factor,而在b roker 级别则可以通过default. replication.factor来配置自动创建的主题。 如果复制系数为N,那么在N-1个broker 失效的情况下,仍然能够从主题读取数据或向主题写入数据。所以,更高的复制系数会带来更高的可用性、可靠性和更少的故障。另一方面,复制系数N 需要至少N
转载
2024-04-15 17:25:49
53阅读
kafka消费者apiimport org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache
SR and AR简单来说,分区中的所有副本统称为 AR (Assigned Replicas)。所有与leader副本保持一定程度同步的副本(包括leader副本在内)组成 ISR (In Sync Replicas)。 ISR 集合是 AR 集合的一个子集。消息会先发送到leader副本,然后follower副本才能从leader中拉取消息进行同步。同步
转载
2024-05-22 09:31:15
77阅读
首先kafka是一个消息中间件,使用kafka主要是也进行热点时间段的数据肖锋,和系统间解耦,更多的场景是用作类操作日志的记录。那么kafka分3大块,生产者,消费者,和存储引擎broker。首先说生产者,生产者向kafka的具体topic-partition推送数据的时候ack机制有3个级别;如果不关心消息丢失情况则设置为0,leader-partition同步数据后发送ack则设置为1,如果要
转载
2024-06-05 01:07:48
44阅读
因此Kafka提供两种策略删除旧数据。一是基于时间,二是基于Partition文件大小。例如可以通过配置$KAFKA_HOME/config/server.properties,让Kafka删除一周前的数据,也可在Partition文件超过1GB时删除旧数据,配置如下所示: # The minimum age of a log file to be eligible for deletion
lo
转载
2024-04-06 13:50:51
104阅读
目录【ISR是什么】【ISR的作用是什么】【为什么要设计ISR机制】【ISR是什么】首先,ISR的全称叫做: In-Sync Replicas (同步副本集),我们可以理解为和leader保持同步的所有副本的集合。一个分区的所有副本集合叫做AR( Assigned Repllicas )与leader-replica未能保持同步的副本集叫做OSR( Out-Sync Relipcas )因此我们就
转载
2024-04-17 09:19:46
25阅读
本文结合在使用Kafka中的使用,和遇到的问题1.Kafka中如何保障发送消息的可靠性?首先我们在创建一个Producer是,可以设置的一些参数如下:1(默认):这意味着producer在ISR中的leader已成功收到的数据并得到确认后发送下一条message。如果leader宕机了,则会丢失数据。0:这意味着producer无需等待来自broker的确认而继续发送下一批消息。这种情况下数据传输
转载
2024-06-28 19:24:12
36阅读
在查看topic详细信息的话可以看到有个Isr,一开始不明所以,于是深入去学习了,不看不知道一看吓一跳:首先要引出一个问题,为什么要存在这些东西:在数据同步的时候,如果发生leader死掉,并且重新选举的leader能力不强(数据同步速度慢,数据同步不全面),会造成一群follow跟着一个傻逼leader。造成脏数据。所以我们就要知道哪些副本能力是较强的,同步数据是最快最完整的,在leader发生
转载
2024-06-19 17:01:44
49阅读
大家好,这是一个为了梦想而保持学习的博客。这个专题会记录我对于 KAFKA 的学习和实战经验,希望对大家有所帮助,目录形式依旧为问答的方式,相当于是模拟面试。【概述】上一章我们讲了 Replica 存在的意义是为了解决数据高可靠和服务高可用问题,kafka 中跟 Replica 跟 ISR 的关系是绕不开的,所以这一章就讲一下 ISR 是什么。【ISR 是什么】首先,ISR 的全称叫做: 
转载
2024-02-08 03:42:33
63阅读
1. 问题Data Replication Kafka 的 Data Replication 需要解决如下问题:怎样 Propagate 消息在向 Producer 发送 ACK 前需要保证有多少个 Replica 已经收到该消息怎样处理某个 Replica 不工作的情况怎样处理 Failed Replica 恢复回来的情况2. Propagate 消息通过zookeeper先知道leader在哪
转载
2024-04-04 19:33:35
66阅读
一句话概述:
isr机制通过为维护一个与leader副本保持“同步状态”的集合,保证数据的一致性,提升了同步性能;ack机制与幂等性保证了数据的exactly once。引入isr的原因kafka并未采取Zab和Paxos协议的多数投票机制来来保证主备数据的一致性,而是提出了isr(in-sync- replicas)机制保证数据的一致性。多数投票机制,如果副本数是2f+1,那么最多允许f个副本发
转载
2024-04-22 23:08:13
97阅读
目录副本与ISR设计Follower副本同步ISR设计 副本与ISR设计一个Kafka分区本质就是一个备份日志,即利用多份相同的备份共同提供冗余机制来保持系统高可用性。 这些备份在Kafka中被称为副本(replica)。Kafka把分区的所有副本均匀地分配到所有broker上。 并从这些副本中挑选一个作为leader副本对外提供服务,而其他副本被称为Follower副本,只能被动地向leade
转载
2024-03-19 02:29:49
130阅读
前言要了解生产者ISR,需要提前了解下生产者重试机制和应答机制生产者重试机制创建生产者时,可以指定retries参数,如果向broker发送消息时抛出异常,并且异常是可重试异常RetriableException,那么此时就会按照指定的次数进行重试1、哪些情况下可以重试(1)没有到delivery超时时间(2)剩余重试次数大于0(3)异常类型为RetriableException或者使用事务管理器
本文讨论的是假设存在完美无缺的producer和consumer, 从broker角度保障数据可靠的机制。一、名词介绍ISR(In-sync Replication):所有与leader副本保持一定程度同步的副本(包括Leader),是kafka动态维护的一组同步副本,每当leader挂掉时,在ISR集合中选举出一个follower作为leader提供服务,当ISR中的副本被认为坏掉的时候,会被踢
转载
2024-06-26 15:28:28
125阅读
kafka中的ISR、AR又代表什么?ISR伸缩又是什么? 分区中的所有副本统称为AR(Assigned Repllicas)。所有与leader副本保持一定程度同步的副本(包括Leader)组成ISR(In-Sync Replicas),ISR集合是AR集合中的一个子集。消息会先发送到leader副本,然后follower副本才能从leader副本中拉取消息进行同步,同步期间内follower副
转载
2024-04-17 11:15:00
46阅读
kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横向扩容。单个
【需求】:生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatis 存入数据库。一、Pom【1】Apache Avro 1.8;【2】Spring Kafka 1.2;【3】Spring Boot 1.5;【4】Maven 3.5;<?xml version="1.0" encoding="UTF-8"?>
<proje
转载
2024-09-27 12:53:59
56阅读