【kafka】--- kafka特性及应用场景

kafka的设计:为了实现统一、实时处理大规模数据的平台;

①:具有高吞吐量

②:具有削峰作用,能够很好的处理大量积压的数据,为了能够周期性地加载离线数据进行处理

③:能够低延迟地处理普通消息

④:支持分区分布式实时处理

特性

1.消息持久化:

磁盘的快慢速度依赖与我们如何去应用磁盘,并且现今有预读和延迟写等技术局的支持,磁盘的读写速度没有想想的那么慢。

kafka选择以文件系统来存储数据,消息系统数据持久化一般采用为每个消费者队列提供一个B树或者其他支持随机访问的数据结构来维护消息的元数据,B树的时间复杂度为O(logn),一般来说磁盘的寻道时间在10ms以内,对一块磁盘来说,同一时刻只能有一个磁头来读写磁盘,这样在并发操作上,IO能力将会随着数据量的增大而急剧下降。

因为Kafka的设计是消息进行顺序追加,所以kafka在设计上采用时间复杂度为O(1)的磁盘结构,只要磁盘足够大就可以一直追加,Kafka对消息的处理机制,可以根据分区大小对消息进行处理,也可以根据消息已存储的时间长度对消息进行处理,这种持久化使得kafka机器在重启后,已存储的消息可继续恢复使用。

 

2.高吞吐量:

kafka支持每秒百万级的消息

①:高吞吐量的设计,充分利用磁盘的顺序读写;

②:kafka在数据写入及数据同步采用了零拷贝技术,采用sendFile()函数,此函数是在两个文件描述符之间直接进行数据传递,完全在内核中进行,减少了用户态到内核态之间转化的时间,效率极高;

③:支持数据压缩和批量发送,将每个主题划分为多个分区

 

3.消息压缩和批量发送:

kafka通常是将多条消息压缩成messageSet,然后将messageSet放到一条消息里发送出去从而提高压缩比提高吞吐量

 

4.数据备份:

kafka可以为每个主题指定副本数,对数据进行持久化备份

 

5.安全机制:

①:通过SSL,支持消费者和生产者与broker链接时的验证

②:支持broker与ZooKeeper连接时身份认证

③:支持消息传输时加密

④:客户端读写权限认证

 

应用场景

 

1.消息系统:因为其具备高吞吐量、内置的分区、持久化、分布式等特点。

2.监控系统:如使用kafka+ELK(ElasticSearch、Logstash和Kibana)整合应用监控系统。

3.网站用户行为追踪:可以将用户行为和操作习惯等消息发送到kafka集群上,然后使用spark等对其处理

4.流处理

5.持久性日志:可以在多个节点间进行备份

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值