kafka高可靠性相关配置

南墨1年前技术文章389

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

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


相关文章

chengying-6.0登入接口逆向

chengying-6.0登入接口逆向

版本更新首先是登入的加密url:http://172.16.121.70/login参数1. username:admin@dtstack.com2. password:614bb9438210c69...

bind服务-2

bind服务-2

五、部署一个正向解析5.1)教学案例对zutuanxue.com域名做解析,解析要求如下:www 解析为A记录 IP地址为 192.168.11.88news 做别名解析CNAME 解析为 www1)...

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

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

一、DBeaver连接Kerberos认证下的hive1.配置本地hosts因为Kerberos认证过程及集群服务中,很多是以主机名的形式进行访问的,所以工作机要设置hosts. 域名映射,我们通过部...

greenplum扩容

一、纵向扩展1、执行命令,生成参数文件[gpadmin@gw_mdw1 ~]$ gpexpand -f seg_hosts -D test 20190327:23:18:01:007122 gpex...

Nacos服务公网环境登陆报密码错误问题排查

Nacos服务公网环境登陆报密码错误问题排查

问题现象nacos服务内网可以正常登录,如下:走公网代理出来之后,无法正常登录,报错"用户名密码错误"排查步骤链路分析首先确认公网代理的链路:域名—>haproxy—>nginx—>...

MySQL运维实战(2.3)MySQL的权限体系和一个例子

mysql权限按授权范围分为3大类全局权限。全局权限是用于管理系统模块的权限。跟具体的数据库或对象无关。授权时需要指定为*.*数据库权限对象权限对于具体的数据库对象的权限,如表、字段级别的权限。MyS...

发表评论    

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