大数据技术框架当中,涉及到多个生态系统组件,根据不同的数据处理需求,给出相应的解决方案,各个组件之间共同配合,共同完成大数据处理的整个任务流程。今天的大数据完整教程,我们为大家带来Kafka入门简介。
根据官方的定义,Kafka是一个分布式流平台,而流平台的关键功能有是三个:发布和订阅记录流,类似于消息队列或企业消息传递系统、以容错的持久方式存储记录流、处理记录流。当然,这也就是Kafka主要的作用。
Kafka可以理解为一个实时数据处理系统,具有高可靠性,支持横向扩展,且速度快,因为被企业信赖。在kafka当中,数据一旦产生,就要能快速进行处理,最常见的就是消息中间件。
消息中间件的作用主要有两点:一是解耦消息的生产和消费,二是缓冲。
消息中间件之所以可以解耦消息的生产和消费,主要是它提供了一个存放消息的地方——生产者把消息放进来,消费者在从中取出消息进行处理。
那么这个存放消息的地方,应该采用什么数据结构呢?
在绝大多数情况下,我们都希望先发送进来的消息,可以先被处理(FIFO),这符合大多数的业务逻辑,少数情况下我们会给消息设置优先级。不管怎样,对于消息中间件来说,一个先进先出的队列,是非常合适的数据结构:
那么要怎样保证消息可以被顺序消费呢?
消费者过来获取消息时,每次都把index=0的数据返回过去,然后再删除index=0的那条数据?
很明显不行,因为订阅了这条消息的消费者数量,可能是0,也可能是1,还可能大于1。如果每次消费完就删除了,那么其他订阅了这条消息的消费者就获取不到这条消息了。
事实上,Kafka会对数据进行持久化存储(至于存放多长时间,这是可以配置的),消费者端会记录一个offset,表明该消费者当前消费到哪条数据,所以下次消费者想继续消费,只需从offset+1的位置继续消费就好了。消费者甚至可以通过调整offset的值,重新消费以前的数据。
以上就是大数据完整教程之Kafka入门简介了,Kafka在大数据系统当中的应用非常普遍,作为消息中间件,起到关键性的作用,在学习阶段也牢牢掌握下来。成都加米谷大数据,专业
大数据培训机构,大数据开发培训班正在招生中,课程详情可联系客服了解!