kafka高可靠性相关配置

南墨10个月前技术文章191

为保证高可靠可以通过以下方面进行设置:

1) 物理机器

场景

配置项

配置说明

高可靠高性能

不间断电源

配置,防止服务器异常断电

RAID卡电池

配置,防止服务器异常断电

RAID卡写缓存

开启,提高性能

RAID 1

配置

硬盘写缓存

关闭,提高数据可靠性

2) Kafka和业务系统

参数

说明

unclean.leader.election.enable

false

不允许不在ISR中的副本被选举为Leader

auto.leader.rebalance.enable

false

不使用Leader自动均衡功能。

acks

-1(all)

当producer需要Leader确认消息是否已经接收并认为已经处理完成。该参数会影响消息的可靠性。

Acks=-1(all)需要等待在ISR列表这种的副本都确认接收到消息并处理完成才表示消息成功。

min.insync.replicas

2

当Producer设置acks为-1时,指定需要写入成功的副本的最小数目。

其中min.insync.replicasunclean.leader.election.enableacksTopic级别设置,可以根据不同Topic进行设置。

3) 影响

l  性能降低。

需要所有的ISR列表副本,且满足最小成功的副本数确认写入成功。这样会导致单条消息时延增加,客户端处理能力下降。

从实验室测试场景来看,

时延增加6倍,吞吐量下降70%。具体性能以现场实际测试为准。

l  可用性降低。

Ø  unclean.leader.election.enable

不允许不在ISR中的副本被选举为Leader。如果所有副本都不可用,那么分区将保持不可用,直到最近的Leader再次可用。

例如:

Test-0分区有副本1、2。acks=1,min.insync.replicas=1。

当2处于故障状态,1接收写入。

Topic: test     Partition: 0    Leader: 1       Replicas: 1,2   Isr: 1

当2修复启动后向1进行同步,其不在ISR列表中。

Topic: test     Partition: 0    Leader: 1       Replicas: 1,2   Isr: 1

此时1发生故障,2无法被选为leader,分区无法接受写入和读取。必须等待1修复后才可继续提供服务。

1)      min.insync.replicas、acks

需要所有的ISR列表副本,且满足最小成功的副本数确认写入成功。当Partition的一个Replica所在节点故障时,无法满足最小成功的副本数,那么将会导致业务写入失败。

1.png

例如:

Test-0分区有副本1、2。acks=-1(all),min.insync.replicas=2。

Topic: test     Partition: 0    Leader: 1       Replicas: 1,2   Isr: 1,2

当2处于故障状态,由于不满足min.insync.replicas将会导致写入失败。

Topic: test     Partition: 0    Leader: 1       Replicas: 1,2   Isr: 1

        2.png

 建议:通常情况下,使用ack=1,min.insync.replicas=1就能够满足的业务需求。


相关文章

企业级大数据安全架构(四)

企业级大数据安全架构(四)

Ranger是支持审计功能的,安装时可以选择审计数据保存的位置,默认支持Solr和HDFS。HDFS的配置比较简单,这里就不赘述了,我们这里使用Ambari默认自带的Solr保存审计日志,下面部署So...

mysql部署

安装前准备创建用户和目录创建用户:groupadd mysqluseradd -g mysql mysql 创建目录mkdir /data/mysqlmkdir /log/mysql添加环境变量vim...

大数据组件Apache NiFi

大数据组件Apache NiFi

概述NiFi是美国国家安全局开发并使用了8年的可视化数据集成产品,2014年NAS将其贡献给了Apache社区,2015年成为Apache顶级项目。是一个基于Web图形界面,通过拖拽、连接、配置完成基...

Redis 持久化机制 AOF

Redis 持久化机制 AOF

前言Redis 有两种持久化机制,分别是 RDB 与 AOF 本篇文章将介绍 AOF 的执行过程与应用。1. AOF 简介AOF (Append only file) 持久化是以独立日志的方式记录每次...

大数据集群部署规划(四)组件建议规格

类型指标名称规格说明HDFS单对NameNode最大文件数1亿-单DataNode最大block数500万GC参数 -Xmx32G单个DataNode磁盘最多block数50万-单个目录下最多文件目录...

netca报错UnsatisfiedLinkError exception loading native library

1、netca报错:UnsatisfiedLinkError exception loading native library: njni11报错:[oracle@test-db ~]$ netca...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。