kafka
一.数据运输面临问题
1.数据来源不同,webserver,物联网,用户行为/接口数据等
2.数据速度快
3.数据量大
二.message queue信息队列
1.各个系统隔离,挂一个不影响
2.增加可扩展性
3.消息广播,告诉每一台机器
4.容易处理数据高峰
5.缓存失败的数据
三.message queue面临挑战
1.不能长期存储数据
2.如何处理上下游连接失败
3.如何快速发送消息
4.数据量大,如何扩张队列宽度
四.Kafka结构
Kafka-分布式实时数据处理系统,可以横向扩展、高可靠,而且还变态快
1.push 高输出,逻辑复杂
2.pull 逻辑简单,可短暂存放,有重播功能
五.kafka处理过程
topic-话题,数据按话题分类
partition-分区,每个分区只能属于一个topic
优点:可扩展,提高读写速度
offset-分区上的索引,offset丢失只能重新查找
API: publish往topic写 和consume消费,可从指定offset开始读
producer(push)-->message queue-->consumer(pull)
consumer group 一个consumer接受消息,组内共享
六.kafka存储在log file,每一行是一个message
log file是临时存储,可以配置存储时间,可以配置存储空间,超过多少G删除
Kafka 存储格式 message无压缩或者一个message存多个压缩的message
七.kafka对IO(input,output)操作,数据复制的优化
读写多用序列存取sequence access 不用随机存取random access
IO优化-zerocopy
partition有两种角色leader和follower
producer通过leader写,follower主动从leader读数据
八.Kafka应用
日志收集,消息系统