




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CONTENTSkafka集群简单介绍kafka集群有4个kakfa集群cdn集群:40台user-action集群:30台性能测试集群:10台cdn老集群:60台 (即将淘汰)kafka服务的不稳定因素v 磁盘损坏会造成kafka服务异常退出。v 服务器故障kafka服务退出;两台以上故障:kafka数据丢失等问题。v zookeeper服务之前所有的kafka和共用一套zookeeper服务,现已经分拆。kafka服务器进程监控目前的监控方式:使用crontab定时扫描监测kafka服务进程,如kafka服务不存在,自动拉起,并短信报警给相关人员。缺点:时效性不高。其他方式:daemont
2、ools监控。KAFKA磁盘故障自动恢复由于kafka服务器磁盘开销很大,随着集群规模的增大,出现磁盘故障的可能性大大提高,为了减少维护的成本,我们开发了磁盘故障的自动处理程序。v通过mysql来管理损坏磁盘;v自动剔除故障磁盘。v自动恢复磁盘v服务器运行日志目录重新选举。v磁盘故障报警通知。kafka备份池kafka备份池:安装了3台kafka服务,平时不启动,线上kafka服务器故障时,从备份池中取出一台备份服务器接替,同时通知IT及时维修故障的服务器。由于目前的kafka的topic副本数为2;当kafka服务器故障超过两台时,就会造成数据丢失;当kafka服务器故障时,可根据需要启动备
3、份服务器。kafka备份机策略可行性测试检验备份机策略是否可行,同时为了检验服务器故障对服务的影响,检验kafka备份机切换对集群和服务的影响,做了如下测试。测试方案: step1:部署3台测试集群的kafka集群备份机。 step2: 创建一个测试的topic,只有一个分区,备份数为2 的test_bak_kafka step3: 编写一个发送消息的生产者程序,不停的发送消息, 启动一个消费者,实时消费消息。 step4:关闭一个正在写入消息的broker的主节点 stop5:启动被关闭的节点。 step6: 关闭主节点,启动 备份节点 kafka的zk元数据信息介绍关闭topic分区的le
4、ader节点如果故障退出的为follower节点,则生产者和消费者都不会受到影响。启动备份节点topic的zk的状态变化在kafka节点异常,备份节点恢复过程中,topic的zk状态变化如下:关闭主节点:kafka的leader发生切换启动备份节点:正常状态:一台broker故障后:备份broker恢复后:kafka的Leader Electionkafka的partition的leader算法没有使用常用的“Majority Vote”;而是采用在ZK中动态维护了一个ISR,这个ISR里的所有Replica都需要跟上了leader,只有ISR里的成员才有被选为Leader的可能。优点:优点:
5、vN+1个Replica,容忍N个replica失败v容忍N个Replica的失败,比“Majority Vote”少近一半的replica缺点:缺点:需要等待最慢的Broker,但是可以通过Producer选择是否被commit阻塞来改善(request.required.acks)。kafka的Leader Election实现:kafka通过Controller节点来选举各个partition的leader。kafka的Leader Election1.controller在ZK的/brokers/ids节点上注册Watch2.broker宕机,ZK会fire Controller注册的
6、Watch会触发controller。3.Controller重新设置partition信息(set_p)。4.从/brokers/topics/topic/partitions/partition/state读取该Partition当前的ISR。5.决定该Partition的新Leader如果ISR 列表中有Replica有幸存,选择其中一个为新Leader,新ISR为当前ISR;如果ISR列表中的Replica都当宕掉,选择任意一个幸存的Replica为新Leader,以及ISR(会有数据丢失的可能);如果该Partition的所有Replica都宕机了,则将新的Leader设置为-1;6
7、. Controlle直接通过RPC向相关Broker发送LeaderAndISRRequest命令。如何处理所有Replica都不工作如果某个Partition的所有Replica都宕机了,就无法保证数据不丢失了。这种情况下有两种可行的方案:1.等待ISR中的任一个Replica“活”过来,并且选它作为Leader 2.选择第一个“活”过来的Replica(不一定是ISR中的)作为Leader。可用性和一致性当中一个简单的折衷,kafka使用的第二种方法。kafka的Data Replication消息生产者的消息发送机制:同步发送同步发送: Producer会在尝试重新发送message.
8、send.max.retries 次后抛出Exception异步发送:异步发送: Producer会尝试重新发送message.send.max.retries 次后记录该异常并继续发送后续数据。目的:kafka为预防一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费;同时提高了整个系统的可用性。vReplica均匀分布到整个集群 Kafka分配Replica的算法如下:设有n个broker,i个partion,j个Replica,将broker和parttion排序后。 将第i个Partition分配到第(i mod n)个Broker上 将第i个Partition的
9、第j个Replica分配到第((i + j) mod n)个Broker上kafka的数据同步机制kafka的各个分区备份之间的同步机制:1.生产者发送消息到leader,leader log数据2. flowller从leader拉取消息。3.flower接收到消息,放到内存ack leader。4.leader ack producer。Kafka之Replication toolsu最优副本选举工具bin/kafka-preferred-replica-election.s -zookeeper localhost:12913/kafka -path-to-json-file topic
10、PartitionList.jsonuTopic 和Partion转移工具#转移topic到新的brokerkafka-reassign-partitions.sh -topics-to-move-json-file topics-to-move.json -broker-list 5,6,7 -execute #转移partition的一些replica到指定的brokerkafka-reassign-partitions.sh -manual-assignment-json-file partitions-to-move.json -execute kafka磁盘上限测试kafka磁盘容量测试,当一个topic的一个分区所在的磁盘用尽,是否会异常?测试环境:测试环境:1.开启一个写kafka的生生产者,向kafka写消息,每条消息10kb。2.Topic为1个partitions,2个Replica;Replica对应的磁盘大小为5.5结果:结果:10.5个小时后,磁盘写满。个小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 继承人合同协议书
- 全自动铺布机项目可行研究报告
- 2025年重组腺病毒P53抗癌因子项目建议书
- 2025年钨基高比重合金合作协议书
- 高端私人游艇码头泊位租赁与船舶租赁代理服务合同
- 抖音短视频创作者信用评价与激励措施合作协议
- 知识产权税费减免效果评估合作协议
- 脊髓骨折的护理
- 生物检测洁净室租赁合同及设备维护协议
- 跨境贸易集装箱GPS追踪器租赁合同
- 材料科学基础基础知识点总结
- 数控铣工图纸(60份)(共60页)
- 新时达-奥莎(sigriner)iAStar-S32电梯专用变频器使用说明书
- 《青年友谊圆舞曲》教案
- 马清河灌区灌溉系统的规划设计课程设计
- 惠州市出租车驾驶员从业资格区域科目考试题库(含答案)
- 加工设备工时单价表
- 高脂血症药物治疗ppt课件
- 单开、菱形及复式交分道岔的检查方法带图解
- 沥青拌和站管理制度汇编(正式版)
- 高层建筑等电位联结安装技术分析探讨
评论
0/150
提交评论