kafka高可靠性相关配置

南墨2年前技术文章622

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

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就能够满足的业务需求。


相关文章

MySQL 创建索引报错

创建索引报错添加索引发现报错,具体报错如下:create unique index sm_sample_clothing_skc_SkcUniqueKey_uindex on sm_sample_cl...

记一次zkfc故障问题定位

记一次zkfc故障问题定位

问题现象:    zkfc进程频繁告警问题分析:    1.查看zkfc日志显示如下,大量的与zk连接超时的信息,达到一...

kubernetes HPA

kubernetes HPA

Horizontal Pod Autoscaling 可以根据 CPU 利用率自动伸缩一个 ReplicaSet、Deployment 或者中的 Pod 数量cat hpa-deploy.yaml a...

apache Hbase2.x  使用hbck2修复工具

apache Hbase2.x 使用hbck2修复工具

1、背景默认情况下apache hbase 使用hbck2时,无法使用-j 来加载hbck2的jar包,无法进行修复2、解决办法是由于默认情况下只使用自带的hbase hbck修复命令,大部分功能在2...

Ranger-usync用户同步-LDAP

Ranger-usync用户同步-LDAP

1、修改配置**cd /opt/ranger-2.3.0-usersync/ **SYNC_SOURCE = ldap SYNC_LDAP_URL = lda...

网络数据链路层-MAC帧(2)

网络数据链路层-MAC帧(2)

3.ARP协议地址解析协议(Address Resolution Protocol,ARP)协议,是根据IP地址获取MAC地址的一个TCP/IP协议。3.1为什么有ARP协议?ARP 协议建立了主机...

发表评论    

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