kafka入门学习2(设计概述,应用场景)
kafka设计动机(数据库日志系统):
kafka设计的初衷是使得kafka能够成为统一,实时的大规模数据平台.
1)具有高吞吐率来支持注入实时日志集的大规模事件流
2) 很好的处理积压数据,以便能够周期性的加载离线数据进行处理.
3) 能够低延迟的处理传统消息应用场景.
4) 能够支持分区,分布式,实时的处理消息,具有容错保障机制.
Kafka特性:
1 消息持久化: 使用文件系统和依赖于页缓存的存储比维护一个内存的存储更加具有优势。kafka选择以文件系统来进行存储.数据的持久化队列可以建立在简单地对文件进行追加的实现方案.
2 高吞吐量: 高吞吐量是kafka设计的主要目标,kafka将数据写到磁盘,充分利用磁盘的顺序读写.同时,kafka在写入数据及数据同步采用了zero-copy技术,在两个文件描述符之间直接传递数据,完全在内核中操作数据.避免了内核缓冲区和用户缓冲区之间的数据拷贝.操作效率很高.kafka支持数据压缩,批量发送,将每个主题化为多个分区
3 扩展性: Kafka支持大规模数据的处理,必须能够对集群进行扩展,分布式是其特性之一,依赖于zookeeper.
4 对客户端的支持
5 kafka stream : 是一个用java 实现的用于流处理的jar文件。
------------------------------------------------------------------------------------------------------------------------------------------------
kafka应用场景:
消息队列中间件是当前处理大数据一个非常重要的组件,用来解耦,异步通信,流量控制等.
(1) 消息系统: kafka作为一个优秀的消息系统,具有高吞吐量,内置的分区,备份冗余分布式.
(2) 应用监控: 利用kafka采集应用程序和服务器健康相关的指标:如cpu占用率,内存,连接数等.
(3) 网站用户行为追踪: 为了更好的了解用户行为,将用户轨迹,内容等信息发送到kafka集群上,通过hadoop,spark进行数据分析处理,生成相应的统计报告,未推荐系统提供数据源,对用户个性化推荐.
(4) 流处理.将已收集的流数据提供给其他流式计算框架进行处理
(5) 持久性日志: kafka可以为外部系统提供一种持久性日志分布式系统.日志可以在多个节点中进行备份.kafka为故障节点数据恢复提供了一种重新同步的机制。同时,kafka很方便与HDFS和Flume进行整合.

浙公网安备 33010602011771号