其他分享
首页 > 其他分享> > 奇虎360的Kafka实践

奇虎360的Kafka实践

作者:互联网

业务问题

  1. 跨IDC读写导致带宽压力大问题。多个业务还可能有重复consume和produce,造成跨IDC网络的极大浪费, 另外跨IDC网络并不稳定,经常遇到一些异常
  2. 业务直接使用官方裸客户端有困难,要进行二次封装
    • 异常情况会catch不全
    • 使用好kafka对业务有较高要求
    • 客户端容错不能完全cover住360场景要求。当网络或集群异常直至不可用性时,数据就会丢失
    • 不支持exactly once语义,需要业务配合实现
    • ......
  3. 数据高可用支持不足,如果分片的所有副本都分布在单个机架上,数据有丢失风险高
  4. 数据分片(partition)分布不均衡。如果集群节点数量远大于分区数,kafka默认分配算法会造成数据倾斜,某些节点分配多,一些分配很少硬件资源利用率低
  5. 集群内新老机器因配置差异负载不均衡。随着时间推移硬件快速发展,新加入的机器性能是老机器成几何倍数提高,如果平均分配,则负载不均衡,新机器吃不饱,老机器吃不了。

技术选型

360选型Kafka从下面几个维度考虑:社区活跃度、客户端支持、吞吐量、数据可靠性比较

 

 

从kafka架构设计亮点分析

 

 

根据以上多个MQ多维度比较,综合权衡优劣势考虑,360最终选择了Kafka

生产环境

解决措施

改造跨IDC读写带宽大问题

解决Kafka客户端易用性和稳定性

解决数据和资源均衡性及利用率问题

启用鉴权、授权和ACL,增强安全性

监控报警支持

SLA保障

参考资料

千亿级数据量的Kafka深度实践:https://mp.weixin.qq.com/s/5p1IgayVXvCSLLc0Zvoqew

 

博客地址引用:https://www.cnblogs.com/lizherui/p/12656777.html

标签:IDC,Kafka,replica,集群,key,奇虎,节点,360
来源: https://www.cnblogs.com/lizherui/p/12656777.html