Kafka在360商业化的实践.pptx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Kafka是Apache软件基金会开发的一个开源流处理平台,它最初由LinkedIn设计并开源,后来成为Apache顶级项目。360公司作为一个大型互联网企业,在其商业化实践中广泛运用了Kafka,以应对海量数据处理和实时消息传递的需求。以下是Kafka在360商业化实践中的关键知识点: 1. **数据可靠性**: Kafka通过副本(replica)和In-Sync Replica(ISR)机制保证数据的高可靠性。每个分区都有一个leader副本和多个follower副本,ISR中的副本保持与leader同步,确保即使在节点故障时也能快速切换到健康的副本,避免数据丢失。 2. **高性能**: Kafka利用sendfile和pagecache技术,直接在内核空间进行I/O操作,提高了数据发送效率。append-only文件模型保证了写入性能,同时,通过replica和ISR实现故障容错,保证了服务的高可用性。 3. **负载均衡**: 传统的基于一致性哈希的负载均衡在节点增减时可能导致大规模数据迁移。360采用了虚拟节点的一致性哈希,使得添加或移除节点时只需迁移少量数据,且通过权重设置适应不同性能的机器。此外,Kafka的replica rack aware策略考虑了磁盘平衡和leader负载,进一步优化了负载分配。 4. **权限控制和访问控制列表(ACLs)**: 360采用了白名单机制,通过工单流程管理合法的topics和consumers,并定期检测并阻止非法操作。同时,Kafka支持基于SSL/SASL的用户鉴权,增强了安全性,但可能会带来一定的性能开销。 5. **配额机制**: 配额机制允许360限制网络带宽和请求速率,分为高、中、低三个优先级,确保关键业务的稳定性。配额可以灵活调整,对特定优先级的业务进行批量升降级操作。 6. **跨IDC数据同步**: 360使用MirrorMaker进行跨IDC的数据同步,确保数据在不同数据中心间只同步一次,所有业务都在本地IDC进行读写。此外,通过Mesos和Marathon的PaaS化部署,提高了服务的SLA(服务水平协议)。 7. **Kafka客户端框架**: 360设计的LogProducer和LogConsumer框架遵循至少一次(at least once)语义,确保消息至少被处理一次。为了实现精确一次(exactly once)语义,业务端需要实现rollback逻辑。框架的设计原则是在极端条件下仍能保持可用性,同时简化业务接口,降低出错可能性。 8. **集群规模与硬件配置**: 360的Kafka集群规模超过100台,每台机器配置有24核CPU、128GB内存和4TB*12 HDD组成的JBOD/RAID10存储,运行在Kafka 1.1.1版本(推荐0.11+版本)。集群最大峰值达到60w QPS的topic和500w QPS的整体处理能力。 总结来说,360在商业化实践中充分利用了Kafka的数据可靠性、高性能、智能负载均衡以及安全和管理特性,构建了一个能够处理千亿级日志和PB级数据的高效消息系统。这个系统不仅满足了大规模数据处理的需求,还通过精细的管理和控制,确保了服务的稳定性和安全性。
- 粉丝: 9118
- 资源: 19万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助