什么是Apache kafka?

     系统应用用户的活动数据、请求数据、交互数据运行维护数据性能监测、服务器CPU指标这些大量的数据都在无时无刻的产生,Kafka便是有着一套成熟的消息处理方案的消息系统,支持高吞吐量的分布式发布订阅消息模式,它可以处理消费者规模的网站中的所有动作流数据也是Apache的顶级开源框架。

应用领域

     已被多家公司用作多类型的数据管道和消息系统,如淘宝、支付宝、百度等;并且一些大数据计算框架如笔者前面介绍的storm、spark都支持与kafka的集成。主要应用场景是kafka作为消息接受系统,将负责接收大量数据,传输给storm进行数据计算处理。

     具体在项目中的应用部署,kafka主要应用在数据计算框架和客户端请求中间,前端程序将消息push到Kafka 服务器集群的某一broker中,通过订阅模式,数据处理框架从Kafka中获取数据进行计算。

Kafka相关概念

AMQP协议:

     Advanced Message Queuing Protocol高级消息队列协议提供了消息交互规范,它和kafka或这rabbitMQ、activeMQ的关系就类如JPA规范和hibernate以及多个实现JPA规范的持久层框架一样。

kafka架构:

     Producer:消息生产者,负责发布消息到Kafka broker

     Broker :Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
     Consumer消息消费者,向Kafka broker读取消息。

kafka的消息分两个层次:

Topic:

     Kafka将消息以topic为单位进行组织如同生活中我们将消息分类为娱乐消息、体育消息、财经消息,kafka将一种消息类别组织为一个topic,一般系统以不同业务将消息进行topic划分。

Partition:

     一个topic中的消息数据按照多个分区进行组织,分区是kafka消息队列的最小组织单位。按照先进先出FIFO队列进行消息管理。

Kafka消息处理流程


Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐