gaoyubotaili 2019-06-01
Kafka是由LinkedIn公司开发的一种高吞吐量的分布式发布订阅消息系统,用户通过Kafka系统可以发布大量的消息,同时也能实时订阅消费消息。
在大数据时代涌现的新的日志收集处理系统(Flume、Scribe等)往往更擅长批量离线处理,而不能较好地支持实时在线处理。相对而言,Kafka可以同时满足在线实时处理和批量离线处理。
Kafka设计的初衷是构建一个可以处理海量日志、用户行为和网站运营统计等的数据处理框架。最近几年,Kafka在大数据生态系统中开始扮演越来越重要的作用,在Uber、Twitter、Netflix、LinkedIn、Yahoo、Cisco、Goldman Sachs等公司得到了大量的应用。
目前,在很多公司的大数据平台中,Kafka通常扮演数据交换枢纽的角色。
在公司的大数据生态系统中,可以把Kafka作为数据交换枢纽,不同类型的分布式系统(关系数据库、NoSQL数据库、流处理系统、批处理系统等),可以统一接入到Kafka,实现和Hadoop各个组件之间的不同类型数据的实时高效交换,较好地满足各种企业应用需求。
同时,借助于Kafka作为交换枢纽,也可以很好地解决不同系统之间的数据生产/消费速率不同的问题。
比如,online实时数据需要写入HDFS的场景中,online数据不仅生成速率快,而且具有突发性,如果直接把online 数据写入 HDFS,可能会导致高峰时间 HDFS 写入失败,在这种情况下,就可以先把online 数据写入kafka,然后借助于 Kafka 消息订阅机制导入到HDFS中。
文章来源:参考林子雨老师的《大数据技术》一书,与大家一起分享交流。